const 關鍵字修飾指針

const在C中修飾指針
比如:
const char *a = "a";
char * const b = "b";
const char * const c = "c";

const在類型前,修飾的是內容;在變量名前,修飾的是指向。
例:
a = "xxx";
*a = 'a'; ×
b = "xxx"; ×
*b = 'b';
c = "xxx"; ×
*c = 'c'; ×
總結
這種問題如果不深究的話,就記住。
推測

  • const char *字面上看,很容易理解爲指向不能修改,但是其內容可以所以修改。

  • char * const字面上看,指向隨意修改,內容不能修改。

  • char * const b,const在變量名b前,而變量的類型是char *型,所以const修飾了一個類型爲char *的b變量,所以指針b不能改變其指向,但是沒有限定其內容,所以可以修改其內容。

  • const char *a,const在char *前,則表示const修飾一個指針類型爲char的變量,這個變量名爲a,所以變量名爲a的內容不能改變,但是其指向可以改變。
    以上都是個人推測,如果想知道準確的解釋的話,這得去查看const變量在系統中如何存儲的吧!
    如果有更好的理解,請留言,或者聯繫我,不甚感激。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章