指標常量與常量指標

2021-08-14 18:09:17 字數 1251 閱讀 1165

注: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...