區別 指標常量 指標變數 常量指標和常量指標常量

2021-08-09 05:13:28 字數 1087 閱讀 5577

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代表乙個指標位址,因此指標變數不允許...