C C 中指標常量和常量指標的區分

2021-10-03 02:47:13 字數 913 閱讀 5797

同學們在寫**的時候,有沒有經常遇到以下「安能辨我是雌雄」的令人崩潰的**呢?

const int* p;           // 01:指標常量,指向的內容是常量,無法通過指標p修改指向的值

int const* p; // 02:同上,不同的寫法

int * const p; // 03:常量指標,該指標是常量,必須初始化,且初始化後不能修改其指向的位址

const int * const p; // 04:指向常量的常量指標

int const * const p; // 05:同上,不同的寫法

我之前也一直分不太清楚這些花裡胡哨的**,好在之前很少碰到,湊巧這次專案中引用的庫裡邊用到了指標常量和常量指標,看的有點暈,索性靜下心來,徹底征服這只"難辨雌雄的兔"。

廢話說完,我們直接進入主題,以下是乾貨:

從右往左讀,遇到p就替換成「p is a 」遇到 * 就替換成「pointer to」,其它的保持不變,最後拼出來的句子,只要讀一遍,就其意自現了。

下面來看示例:

p is a pointer to int const.即【p是乙個指向整型常量的指標】。

p is a pointer to const int,即【p是乙個指向常量整型的指標】,意思同上,這兩者就是寫法上的區別,作用是一樣的。

p is a const pointer to int,即【p是乙個整型的常量指標】,意思已經很明顯了,指標指向的內容是int,指標本身是const。

p is a const pointer to int const,即【p是指向整型常量的常量指標】。

p is a const pointer to const int,即【p是指向整型常量的常量指標】。

好了,本集武林秘籍就傳授到這裡了,解散!

C C 指標常量和常量指標

常量指標 常量指標是指向常量的指標,指標指向的記憶體位址的內容是不可修改的。常量指標定義 const int p a p 告訴編譯器是常量,不能將 p作為左值進行操作。但這裡的指標p還是乙個變數,它的內容存放常量的位址,所以先宣告常量指標再初始化是允許的,指標也是允許修改的,例如 int a 0,b...

常量指標和指標常量 C C

按英文的字面意思,從右向左理解就比較清楚了 const char pointer 常量指標 底層const pointer to const 字面意思 指向常量的指標,不能通過這個指標修改指向的內容 char const pointer 指標常量 頂層const const pointer 字面意思...

c 中指標常量,常指標,指向常量的常指標區分

const char myptr char a 指向常量的指標 char const myptr char a 常量的指標 const char const myptr char a 指向常量的常量指標 從字面意思可以看出,指標是乙個常量,也就是位址不能被修改。include using names...