指標常量和常量指標的區別
阿新 • • 發佈:2018-12-19
(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沒有修飾‘*“ 嘛)