秒懂指標常量和常量指標

2021-10-02 17:34:56 字數 1370 閱讀 6173

必須說明的一點:const修飾符只影響其右邊的**。

int num = 1;

int * const ptr = #

const右面只有ptr乙個成員,所以只對ptr起作用,只有ptr乙個人是唯讀的不可改變,和其他成員沒關係。

ptr++;    //error

*ptr = 2; //ok

num = 3; //certainly ok

這就印證了開頭說的「const修飾符只影響其右邊的**」。

指標常量的意思是指標變數ptr只能儲存num的位址,只能指向變數num,二者之間關係永久,矢志不渝。

int num = 1;

const int * ptr = #

const後面是* ptr,那麼只有*ptr是唯讀的,而其他成員numptr不受影響。

*ptr = 2;//error

ptr++; //ok

num = 3; //certainly ok

這也印證了「const修飾符只影響其右邊的**」。

常量指標的意思是不能通過ptr修改num的值,僅此而已。ptr可以指向其他變數。

此外,const int * ptr = &numint const * ptr = &num是完全等效的,畢竟constint沒什麼瓜葛,const無論怎麼用都是在對後面的* ptr起作用。

根據「const修飾符只影響其右邊的**」這一原則,我們既想讓ptr永遠指向num,又不想通過ptr改變num的值,我們可以這樣寫:

const int * const ptr = #
其中第乙個const*ptr起作用,第二個constptr起作用,這樣就形成了指向常量的指標常量。

指標 常量指標和指標常量

const關鍵字宣告乙個常量,常量宣告後不能修改。類似的,我們可以宣告常量指標 double radius 5 double const pvalue radius pvalue 4 可以修改其中pvalue是乙個常量指標,其宣告和初始化必須在同一條語句中,後面的程式不能為其賦予新的位址。注意,雖然...

常量指標 和 指標常量

在c 的學習中,有人經常搞不清楚 常量指標 和 指標常量 這兩個概念。其實簡單一點講,常量指標 所指向的位址上的資料是常量,而 指標常量 所指向的位址是常量,位址上面的資料是可以變化的。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。指標常...

常量指標和指標常量

定義 具有只能夠讀取記憶體中資料,卻不能夠修改記憶體中資料的屬性的指標,稱為指向常量的指標,簡稱常量指標。宣告 const int p int const p 注 可以將乙個常量的位址賦值給乙個對應型別的常量指標,因為常量指標不能夠通過指標修改內粗資料。只能防止通過指標引用修改記憶體中的資料,並不保...