【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 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...