C++ 常量指針和指針常量的區別

指針常量(常指針)

  首先是一個常量,其次該常量是個指針。因爲是一個指針類型的常量,所以定義時必須初始化一個變量的地址,且始終指向該地址不能被更改即只能賦值一次,但地址中存放的內容可以被更改

通過以下例子瞭解指針常量的特性:

int a,b;
int* const p = &a; //指針常量初始化
*p = 10; //操作成功,指針常量所指地址的內容可以被更改
p = &b; //操作錯誤,指針常量指向的地址不能被更改,因爲只能賦值一次

常量指針

  字面意思常量的指針,即該指針是一個指向常量的指針變量。定義時不需要被初始化。該指針可以指向不同的變量地址,但不能通過該指針改變變量的內容

通過以下例子瞭解常量指針的特性:

int a,b;
const int* p;  //定義常量指針
p = &a;		//常量指針賦值
*p = 10;    //操作錯誤,不能通過常量指針改變變量的內容
p = &b;     //操作成功,常量指針指向的地址可以被更改

  由以上兩部分的介紹,不難推導出指向常量的常指針的形式:

舉例如下:

int a = 10;
const int* const p = &a; //必須初始化,且只能賦值一次,指向的地址不能改,不能通過指針改變變量的內容

參考鏈接:https://blog.csdn.net/navymei10220214/article/details/82873704

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章