C 常量指標與指標常量

2021-08-27 16:25:08 字數 1313 閱讀 1520

【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可以賦值為&a或&b。如果試圖賦值給*p呢?

【例2】

#include 

using

namespace

std;

int main()

編譯結果:

在試圖給*p賦值時出錯。

·但在一些語句當中,常量指標可以這樣執行: *ptr++,這是因為自增運算的優先順序比 *符號運算級高,也就是先進行自增再*運算。

2.指標常量

形如 int* const p的,p為指標常量。

【例3】

#include 

using

namespace

std;

int main()

編譯結果:

可以看到,指標變數是不能先宣告再賦值的,需要宣告後立即賦值。

【例4】

#include 

using

namespace

std;

int main()

執行結果:

a的值:30

*p的值:30

如果試圖再給p賦值,也會出錯,而給*p賦值就不會出錯。

【例5】

#include 

using

namespace

std;

int main()

執行結果

a的值:30

*p的值:30

*p的值:40

總結:

- 常量指標可先宣告後賦值,指標常量需宣告後立即賦值

- 常量指標p可以賦值,如p = &b,*p不可以賦值;指標常量p不可以賦值,而*p可以賦值,如*p = b

C 指標常量與常量指標

指標常量 const int m 3 m是乙個常量,不能被改變 int n 10 int p m 錯誤,p是乙個普通指標,不能指向常量m const int p1 m 正確,因為p1是常量指標,可以指向常量與非常量 p1 n 正確,但是不能通過 p1更改n的值,只能存放n的位址 還有一點是指標型別必...

指標常量與常量指標 C

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

指標常量與常量指標

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