在定義變數時新增const關鍵字
const
int size = 1024; //定義size為乙個常量
int i = 10;
const
int j = i; //正確:j拷貝了i的值
int l = j; //正確:常量值可以用於非常量初始化
const和引用聯合使用
int i = 10;
const
int &j = 20
//正確:j是乙個常量引用,j的值將不能改變
const
int &j = i*2
//正確:同第二行結果相同,且j的值不會隨i變化而變化
const
int &j = i //正確:j是乙個繫結到i上的常量引用,且j的值會隨i的變化而變化
int &l = j; //錯誤:l不是常量引用,無法通過編譯
const和指標聯合使用
const
int i = 1024;
int *ptr = &i; //錯誤:ptr是乙個普通指標,不能指向const常量
const
int *ptr = &i; //正確:此時const在*前面,意思是ptr指向的是乙個常量
int j = 1024;
int *const ptr = &j; //正確:此時const在*後面,意思是ptr本身是個常量,他將一直指向j
const
int * const ptr = &i; //正確:上面二者的綜合,表示常量指標ptr指向常量i
關於const 限定符
很多引用自c primer一書 比如有時候需要將乙個文字中的資料複製到另外乙個文字。我們需要使用緩衝區,緩衝區的大寫我們可以自己來決定比如1024個位元組,這是乙個常量,我們使用bufsize 1024.但是bufersize物件本身是乙個變數。所以我們可以引入const限定符,它將乙個物件轉化為常...
關於C 的const限定符的學習
c 程式設計中鼓勵用const來進行常量的定義不鼓勵使用巨集,但是在底層程式設計中用巨集很方便。在這裡總結了一點關於const的一些研究。const會進行型別檢查,而巨集只是簡單的替換。const的作用域是該變數的作用域範圍。const在編譯的時候分配記憶體。巨集是在預處理的時候進行替換。const...
C 學習 常量 const限定符
const int bufsize 512 input bufsize bufsize 仍然是左值,但不可修改。任何修改bufsize的嘗試都會導致編譯錯誤。因為常量定義後就不可修改,所以定義時必須初始化。e.g.const std string i hello 正確 const i,j 0 錯誤,...