C 指標常量與常量指標

2021-10-21 00:21:39 字數 742 閱讀 9546

指標常量

const int m = 3; //m是乙個常量,不能被改變

int n = 10;

int *p = &m; //錯誤,p是乙個普通指標,不能指向常量m

const int *p1 = &m ; //正確,因為p1是常量指標,可以指向常量與非常量

p1 = &n; //正確,但是不能通過*p1更改n的值,只能存放n的位址

//還有一點是指標型別必須和所指物件型別一致

int m = 10;

int n = 2;

int *const p = &m; //正確

p = &n; //錯誤,因為p被const修飾,是乙個常量,存放的是m的位址,不允許被更改

*p = 3; //正確,因為*p沒被const修飾,所以可以更改,此時m的值被更改為3

const int m = 10;

int *const p = &m; //錯誤

const int *const q = &m; //正確,q是乙個指向常量物件的常量指標

符合型別從右向左讀,從變數名稱最近的地方開始解讀符號和關鍵字對其的影響,如int *const p,關鍵字const只修飾了p,也就是說p是乙個常量物件,在前邊是乙個 * 表示p是常量指標,最後是int表示是什麼型別的

指標本身是乙個常量但並不意味著不能通過指標修改所指物件的值,能否這樣做還取決於所指物件的型別

C 常量指標與指標常量

c 常量指標與指標常量 1.常量指標 形如 int const p 或 const int p,p稱為 常量指標 例1 include using namespace std int main 執行結果 a的值 30 p的值 30 p重新賦值 40 在例1中,可以看到,p可以先宣告再賦值,而且p可以...

指標常量與常量指標 C

常量指標 const int int const 乙個指標,指向的內容是乙個常量,內容不能修改,但指標本身可修改。修改內容時,編譯器報錯 error assignment of read only location 指標常量 int const 乙個常量,常量本身是乙個指標,指標本身不能修改,但指標...

指標常量與常量指標

指標常量與常量指標 指標常量是指定義的指標只能在定義的時候初始化,之後不能改變其值,格式如下 資料型別 const 指標常量名稱 例項如下 1char constp1 2int constp2 const 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...