1.指標變數:指標值(即指標的指向)可以改變的指標,只能指向變數;
2.指標常量:指標值(即指標的指向)不能改變的指標,只能指向變數,但可以修改指向的實體變數的值;
3.常量指標:指向常量的指標,所以不能修改指向的實體的值,但可以修改指標的指向(即可以指向別的常量,必須是常量);
4.常量指標常量:指向常量,指標不能改變指向的實體的值,指標值(即指標的指向)也不能改變(是2和3的結合)。
舉例子:
const
int a = 78; //整型常量
int b = 10; //b和c是整型變數
int c = 18;
int* kp = &b; //指標變數
const
int* ip = &a; //常量指標
intconst* dp = &b; //常量指標
int* const cp = &a; //錯,定義了指標常量,但不能指向實體常量
int* const cp = &b; //指標常量
const
int* const icp = &c; //常量指標常量
//const在*前是常量指標;const在*後是指標常量(注意:沒有這種定義形式 const* int d;)
*kp = 90; //對,能修改指向的實體的值
kp = &a; //錯,只能指向實體變數
*ip = 87; //錯,常量指標不能修改指向的實體的值
ip = &c; //對,常量指標能指向的實體能修改(即指標值)
*cp = 81; //錯,指標常量能修改指向的實體的值
cp = &b; //錯,指標常量指向的實體不能改變(即指標值)
*icp = 33; //錯,常量指標常量不能修改指向的實體的值
icp = &b; //錯,常量指標常量不能修改指向(即指標值)
int d = *icp; //對,可以讀間訪值
指標 常量指標和指標常量
const關鍵字宣告乙個常量,常量宣告後不能修改。類似的,我們可以宣告常量指標 double radius 5 double const pvalue radius pvalue 4 可以修改其中pvalue是乙個常量指標,其宣告和初始化必須在同一條語句中,後面的程式不能為其賦予新的位址。注意,雖然...
常量指標和指標變數
const int p,int const p 常量指標 該指標所指向的變數的值不能通過這個指標來修改,但可以通過原變數來修改,可以改變指標所指向的物件 int a 7,b 8 const int p a p 19 這個語句出現錯誤 a 17 可以通過原變數來修改值 p b 改變指標所指向的變數 i...
指標常量和常量指標的區別
1 指標常量 顧名思義它就是乙個常量,但是是指標修飾的。格式 int const p 指標常量例 int a,b int const p a 指標常量 那麼分為一下兩種操作 p 9 操作成功 p b 操作錯誤,指標p將一直指向a,不能再指向b因為宣告了指標常量,p代表乙個指標位址,因此指標變數不允許...