C 中關於const限定符學習筆記

2021-08-01 01:37:24 字數 906 閱讀 5335

在定義變數時新增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 錯誤,...