C語言 const的用法

2021-08-17 19:43:37 字數 1052 閱讀 9746

關於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 預編譯...