注:const :常量,意為不變的量
先看以下定義
a.int const *p;
b.const int *p;
c.int *const p;
d.const int *constp;
e.int const *constp;
以上五種中a和b表示的是指標常量,c、d、e表示的是常量指標
如何劃分指標常量和常量指標
技巧:從右往左讀,*翻譯成pointerto(指向)
例如:a:p is a pointerto const int (p是乙個指標指向乙個常量)
c:p is a constpointer to int(p是乙個指向整數的常量指標)
指標常量和常量指標的區別
i.指標常量
這是乙個偏正短語,重點在後面,就是說指標常量就是乙個指標所指向常量
例如:a:p is a pointer to const int (p是乙個指標指向乙個常量) 重點在常量
,相當於p這個指標指向乙個常量,p指向的記憶體是乙個常量,常量不可變,
但p可變,例如這個常量是1,定義乙個int const *p=1後,int const = 1,不可變
但分配的位址p是可以改變的。
ii.常量指標
是指標例如:
c:p is a const pointer to int(p是乙個指向整數的常量指標) 重點在指標
p是乙個常量指標,p是指標,同時p是乙個常量,不可變,但 *const p指向的
是乙個int ,這個int是可變的。假設系統給*const p分配的位址是 60378f,那麼
在接下來的程式執行中,60378f這個位址不會改變,但它指向的int 可以為任意整數
例項演示:
const int a=12; //定義乙個常量a
int *p=&a; //定義乙個指標指向a
這是個指標常量,此時 p是乙個整型指標,它指向乙個常量a,等價於 const int *p =&a;
注意 a是常量,a的值不可變;
int a =12;
int const *p=&a;
這個也是個指標常量
等價於int const *p=&a;
int a =12;
int *const p=&a;
常量指標。
指標常量與常量指標
指標常量與常量指標 指標常量是指定義的指標只能在定義的時候初始化,之後不能改變其值,格式如下 資料型別 const 指標常量名稱 例項如下 1char constp1 2int constp2 const 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...
常量指標與指標常量
首先,我告訴大家乙個小規則,就是像這樣連著的兩個詞,前面的乙個通常是修飾部分,中心詞是後面乙個詞,怎麼說呢。就像這裡的常量指標和指標常量。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。我再分開細細說明,常量指標,它是乙個指標,什麼樣的指標...
常量指標與指標常量
在c c 面試中經常會考到常量指標和指標常量,對初學者來說經常會分不清楚,參考網路上的資料,重新學習 記錄一下。常量指標 指向常量的指標,即指向的內容為常量,不可更改,但指標自身的值可以修改。常量指標常量 指標指向的內容不可改變,指標本身的值也不能改變。int a 3 int b 4 const i...