C語言中connst用法

一、const通常用來定義只讀變量,這個變量的之只能在初始化時賦值,若是初始化時沒有賦值,則默認爲0。若是在其餘地方試圖更改此值,編譯會報錯。如:spa

 1 #include<stdio.h>
 2 int main()
 3 {
 4         const int a;
 5         a+=2;
 6         printf("%d\n",a);
 7         return 0;
 8 
 9 }
10 
11 
12 運行結果:
13 con.c: In function ‘main’:
14 con.c:5:3: error: assignment of read-only variable ‘a’
15   a+=2;

二、const 和指針指針

const和指針有如下幾種書寫方式:
  • const int *a

  指針指向的內容不可變,但指針能夠改變code

 

 #include<stdio.h>

int main()
{
        int w=1;
        int q=2;
        const int  *a=w;
        a=&q;
        ++a;
        ++*a;
        printf("%d/n",*a);

}

 

運行結果:blog

con1.c: In function ‘main’:
con1.c:10:9: error: increment of read-only location ‘*a’
         ++*a;rem

 

  • int const *a

   指針指向的內容不可變,指針能夠改變。io

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5         int w=1;
 6         int q=2;
 7         int const *a=q;
 8         a=&w;
 9 //      int *const a=&w;
10 //      const* int a;
11 //      const int *a;
12 
13         ++a;
14         ++*a;
15 
16 }

運行結果:編譯

 con1.c: In function ‘main’:  con1.c:14:2: error: increment of read-only location ‘*a’  ++*a;  ^
  • int *const a

    const修飾了a, a自己是一個常量,而a仍是一個指針,結果就是一個指針常量,指針不可變,但指針內容可變。
function

#include<stdio.h>

int main()
{
        int w=1;
        int q=2;
        int *const a=&w;
        ++a;
        ++*a;

}

 

運行結果:class

con1.c: In function ‘main’:
con1.c:8:9: error: increment of read-only variable ‘a’
         ++a;變量

相關文章
相關標籤/搜索