關於const的用法做以下總結:
1、定義常變數
const int a = 10;
int a = 10; // 可讀可寫
int b = a; //a做右值
a = 100; //a做左值
//左值:放在賦值「=」符號左邊,左值用寫許可權
const int ca = 100; // 唯讀變數(不能寫,不能做左值)
ca = 200; //error,ca不可做左值
const int cb; //error,cb為隨機值,不能改,無意義
ca = 100; //error,雖然ca賦的值與const裡的相同,仍為錯誤
2、資料型別對於const是透明的,即const int等同於int const
const int ca = 10;等同於int const ca = 10;
3、const直接修飾的內容不能做左值
const int *cp = &a;
cp1 = &b; //ok
*cp1 = 20; //error
int 對const是透明的,去掉int,const修飾*cp1,所以cp1不能做左值
int *const cp3 = &a; //const修飾cp3
cp3 = &b; //error
*cp3 = 100; //ok
int const * const cp4 = &a;
cp4 = &b; // error
*cp4 = 40; //error
4、許可權的傳遞
許可權的同等或者縮小傳遞合法,放大傳遞非法。
int const *cp1 = &a;
cp1 = &ca; //cp1不許解引用
int *const cp3 = &ca; //error,cp3可解引用
const char *p; //不允許p解引用,防止修改源的值
C語言 const 用法
1 const int a int const a 這兩個寫法是等同的,表示a是乙個int常量。2 const int a int const a 表示a是乙個指標,可以任意指向int常量或者int變數,它總是把它所指向的目標當作乙個int常量。3 int const a 表示a是乙個指標常量,初始...
C語言中const的用法
1 const的普通用法 const int n 10 意思很明顯,n是乙個唯讀變數,程式不可以直接修改其值。這裡還有乙個問題需要注意,即如下使用 int a n 在ansi c中,這種寫法是錯誤的,因為陣列的大小應該是個常量,而n只是乙個變數。2 const用於指標 const int p int...
C語言中const的用法
關鍵字const用來定義常量,如果乙個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,c語言中不是有 define嗎,幹嘛還要用const呢,我想事物的存在一定有它自己的道理,所以說const的存在一定有它的合理性,與預編譯指令相比,const修飾符有以下的優點 1 預編譯...