1. 程式人生 > >指標常量和常量指標的區別

指標常量和常量指標的區別

(1)指標常量:顧名思義它就是一個常量,但是是指標修飾的。 格式:

int * const p //指標常量

例:

int a,b; int * const p=&a //指標常量 //那麼分為一下兩種操作 *p= 9; //操作成功

p=&b;   //操作錯誤,指標p將一直指向a,不能再指向b

因為聲明瞭指標常量,p代表一個指標地址,因此指標變數不允許修改,但是指標所指的值即*p是可以修改的。如同次指標指向一個地址該地址不能被修改,但是該地址裡的內容可以被修改”。

(2)常量指標

常量指標:如果在定義指標變數的時候,資料型別前用const修飾,被定義的指標變數就是指向常量的指標變數,指向常量的指標變數稱為常量指標。

格式:

constint *p = &a; //常量指標

例:

int a,b;
const int *p=&a //常量指標
//那麼分為一下兩種操作*p=9;    //操作錯誤,指標所指的值不能改變p=&b;    //操作成功

因為常量指標本質是指標,指標所指的物件的值,即*P不能修改,但是指標,即p是可以修改的。

小結:
A、關鍵要看const修飾的是誰

int const   和  const int的寫法是一樣的

B、指標的話看const離誰( 是‘*’  還是‘指標變數名’)比較近就是修飾誰的,比如:

(a)const * p:表示帶*運算物件的是常量,也就是*p 不可變 (暗示p可變,p不帶‘*’ 嘛)

(b)* const p:表示變數名是常量  也就是p不可變 (暗示*p可變,const沒有修飾‘*“ 嘛)