C語言筆記16--關鍵詞const
阿新 • • 發佈:2018-12-11
關鍵詞const限定一個變數不允許被改變,也就是改變使用者對變數的許可權。const修飾時,代表這個變數是一個常量,變數被修飾後,不能再進行自增、自減等。 1.用const定義一個常量
#include<stdio.h>
#include<stdlib.h>
void main()
{
const int a=10;//只能在定義時賦值
//a++;不能自增
//a=20;不能再賦值
printf("%d\n",a);
system("pause");
}
上面的程式碼簡單地介紹const定義一個常量,值得注意的是const int 等價於int const。 2.const與指標 const與指標混合使用時非常容易出錯,要區分是一個指標指向一個常量還是指標是常量。
#include<stdio.h>
#include<stdlib.h>
void main()
{
const int a=10;
const int b=20;
const int *p=&a;//定義一個指標指向一個常量
printf("%d\n",*p);
//*p=30;不能修改
p=&b;
printf("%d\n",*p);
system("pause");
}
列印結果為: 上面const int *p,定義了一個指標,指向常量,但指標本身是一個變數,可以指向不同的地址,並且指標不能修改指向的內容。 把上面的程式碼做出修改:
#include<stdio.h> #include<stdlib.h> void main() { const int a=10; const int b=20; int * const p=&a;//這是指標是一個常量 printf("%d\n",*p); //p=&b;不能修改指向的地址 *p=30; printf("%d\n",*p); system("pause"); }
列印結果為: 上面的int * const p;是定義了一個常量指標,指標是一個常量,所以不能再重新指向地址,但可以修改指向的內容。 再對程式碼做出修改:
#include<stdio.h>
#include<stdlib.h>
void main()
{
const int a=10;
const int b=20;
const int * const p=&a;//這是指標是一個常量,指向的也是一個常量
printf("%d\n",*p);
//p=&b;不能修改指向的地址
//*p=30;不能修改指向的內容
system("pause");
}
列印結果: