int b = 500;
const int* a = &b; [1]
int const *a = &b; [2]
int* const a = &b; [3]
const int* const a = &b; [4]
typedef char * pchar; // pointer to char
typedef const pchar cpchar; // const pointer to char
typedef const char * pcchar; // pointer to const char
typedef pchar * ppchar; // pointer to pointer to char
typedef const char * const cpcchar; // const pointer to const char
typedef pcchar * ppcchar; // pointer to pointer to const char
1, 如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量。
2, 如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量。因此,[1]和[2]的情況相同,都是指標所指向的內容為常量(const放在變數宣告符的位置無關),這種情況下不允許對內容進行更改操作,如不能*a = 3 。
3, [3]為指標本身是常量,而指標所指向的內容不是常量,這種情況下不能對指標本身進行更改操作,如a++是錯誤的。
4, [4]為指標本身和指向的內容均為常量。
總結起來就是左常量右指標。
const 和指標的關係。。
常型別是指使用型別修飾符const說明的型別,常型別的變數或物件的值是不能被更新的。當然,我們可以偷梁換柱進行更新 const 推出的初始目的,正是為了取代預編譯指令,消除它的缺點,同時繼承它的優點。1 可以定義const常量,具有不可變性。例如 const int max 100 int arra...
const 指標與指向const的指標
當使用帶有const的指標時其實有兩種意思。一種指的是你不能修改指標本身的內容,另一種指的是你不能修改指標指向的內容。聽起來有點混淆一會放個例子上來就明白了。先說指向const的指標,它的意思是指標指向的內容是不能被修改的。它有兩種寫法。const int p 推薦 int const p 第一種可...
const 指標與指向const的指標
當使用帶有const的指標時其實有兩種意思。一種指的是你不能修改指標本身的內容,另一種指的是你不能修改指標指向的內容。聽起來有點混淆一會放個例子上來就明白了。先說指向const的指標,它的意思是指標指向的內容是不能被修改的。它有兩種寫法。const int p 推薦 int const p 第一種可...