指標常量與常量指標

2021-10-19 14:30:31 字數 1500 閱讀 6261

這裡不去區分中文到底誰是指標常量與常量指標,因為記住也沒啥用。

按照從左至右的順序記憶,按照從右至左的順序理解。

參考《effective c++》item21上的做法,如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量。

記憶

只關注【const】 和 【*】 的先後順序,從做到右的順序讀就行,const讀做常量,*讀做指標。

const

int* p;

//常量指標

int*

const p;

//指標常量

intconst

* p;

//常量指標

理解

const

int* p;

// 指標p 指向乙個const

int*

const p;

// 指標常量p 指向乙個 int

intconst

* p;

// 指標p指向乙個const

int age =

18;const

int*ptr =

&age;

這裡的意思是:ptr指向乙個const int,也就是說不能通過ptr去修改age這個值,換句話說就是ptr的值是

const* 不能修改。

*ptr+

=1;//是錯誤的

重點來了:ptr的宣告並不意味著他指向的值實際是乙個常量值,也就是說age只是乙個整型變數而已,可以直接通過age = 19來修改age的值。這裡只是相對於ptr而言,age是常量,不能通過ptr去修改age的值。

int anotherage =30;

*ptr =20;

//錯誤,不能通過該指標修改其指向的值

age =20;

//正確

ptr =

&anotherage;

//正確,可以指向其他的位址

3.指標常量

可以修改指標指向的值,但是禁止改變指向的變數

int sage =20;

int hapi =30;

int*

const pt =

&sage;

*pt =29;

//正確

pt =

&hapi;

//錯誤

指標常量與常量指標

指標常量與常量指標 指標常量是指定義的指標只能在定義的時候初始化,之後不能改變其值,格式如下 資料型別 const 指標常量名稱 例項如下 1char constp1 2int constp2 const 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...

常量指標與指標常量

首先,我告訴大家乙個小規則,就是像這樣連著的兩個詞,前面的乙個通常是修飾部分,中心詞是後面乙個詞,怎麼說呢。就像這裡的常量指標和指標常量。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。我再分開細細說明,常量指標,它是乙個指標,什麼樣的指標...

常量指標與指標常量

在c c 面試中經常會考到常量指標和指標常量,對初學者來說經常會分不清楚,參考網路上的資料,重新學習 記錄一下。常量指標 指向常量的指標,即指向的內容為常量,不可更改,但指標自身的值可以修改。常量指標常量 指標指向的內容不可改變,指標本身的值也不能改變。int a 3 int b 4 const i...