指向常量的指標和常量指標

2021-07-12 02:34:28 字數 537 閱讀 6143

首先,指標就是位址

const  int  *pa :指向常量的指標,要求不能通過該指標改變所指向的物件的值;

int *const  pb:常量指標,表示該指標變數不能再指向其它的物件,但可以改變指向物件的值。

在這裡關鍵是分清:指標本身指標指向的物件這兩個概念:只要分清了這兩個概念,就好理解了。

這裡有兩個概念:(1)頂層const(top-level const ):指標本身是個常量;(2)底層const (low-level  const):指標指向物件是個常量;

const int a=100;

const int* pa=&a;

int b=2;

pa=&b; //合法的

// *pa=3; //不合法;

int c=23;

int *const pb=&c;

*pb=34; //合法

// pb=&b; //不合法;

常量指標和指向常量的指標

首先指出乙個錯誤,壓根就不應該有指標常量這個說法。經常聽到有關常量指標和指標常量的討論,也經常見到有關兩者區別的文章,然而,有些文章卻誤導了讀者,他們的結論根本就是錯的。例如關於指標常量和常量指標的討論,結果完全顛倒了 而其他一些文章呢,充其量只是火上加油,讓本來就很複雜的事情變得更加難於理解,例如...

常量指標和指向常量的指標

1 常量指標 指標本身的位址值不可修改,這個值是定義指標的時候確定的,以後不可再改變。定義 int const i new int i是常量,執行i 會出錯 const修飾的是i,所以i不能變。2 指向常量的指標 該指標指向的變數是不可修改的。定義 const int i new int 100 或...

常量指標和指向常量的指標

經常c 程式設計師會提到 常量指標 const pointer 其實他們想表達的意思往往是 指向常量的指標 pointer to const 真不幸,這是兩個完全不同的概念。t pt new t const t pct pt 乙個指向常量的指標 t const cpt pt 乙個常量指標這裡一定要弄...