const 位置與指標的關係

2021-07-29 14:54:00 字數 901 閱讀 4468

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 第一種可...