常量指標和指標常量

2021-08-15 10:14:20 字數 1021 閱讀 1278

int a = 10;

const

int* b = &a;//常量指標

intconst* c = &a;//常量指標

int* const d = &a;//指標常量

指標常量:指標型別的常量,指標只能賦值一次(定義時除外),不能再修改指標指向,類似陣列名稱。

常量指標

知乎問答 ④

說是參考《c primer plus》

以上關於指標常量和常量指標的定義正好是相反的,但說的都是乙個意思,本地還是一樣。

特意檢視了《c++ primer plus》

as you saw earlier, assigning a non-const pointer to aconst pointeris okay, provided that you』re

dealing with just one level of indirection:

int age = 39; // age++ is a valid operation

int * pd = &age; // *pd = 41 is a valid operation

constint*pt = pd; // *pt = 42 is an invalid operation

這樣來看const pointer如果這樣定義的話,如果翻譯成常量指標,則其定義就是指向常量的指標

那麼,指標常量 其定義就是指標型別的常量了。

比較容易誤導的地方就是,常量指標和常指標。習慣上,常指標更傾向去表達常屬性的指標,實際常指標按翻譯來講,const pointer確是常量的指標。所以常指標(有常屬性的指標),其實是指標常量。

從**上區分:

看const在*前還是*後

*前則修飾*p,即*p為常量

*後則修飾p,即p為常量

從定義上區分:

那就從左往右,*讀指標,const讀常量。

指標 常量指標和指標常量

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

常量指標 和 指標常量

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

常量指標和指標常量

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