C++中指針常量與常量指針

指針是一種特殊的變量,它裏面存儲的內容是內存地址。

常量是指其裏面存儲的內容不能發生改變的量。明白了這兩個概念後,我們現在正式進入指針常量與常量指針。

1.指針常量與常量指針的概念

指針常量就是指針本身是常量,換句話說,就是指針裏面所存儲的內容(內存地址)是常量,不能改變。但是,內存地址所指向的內容是可以通過指針改變的。

常量指針就是指向常量的指針,換句話說,就是指針指向的是常量,它指向的內容不能發生改變,不能通過指針來修改它指向的內容。但是,指針自身不是常量,它自身的值可以改變,從而指向另一個常量。

2.指針常量與常量指針的聲明

指針常量的聲明:數據類型 * const 指針變量。

常量指針的聲明:數據類型 const * 指針變量 或者 const 數據類型 *指針變量。

常量指針常量的聲明:數據類型 const * const 指針變量 或者 const 數據類型 * const 指針變量。

3.指針常量與常量指針的使用

3.1 指針常量的例子

1
2
3
4
5
6
/*指針常量的例子*/
int a,b;
int * const p;
p = &a;//正確
p = &b;//錯誤
*p = 20;//正確

指針常量聲明的時候必須賦初始值。使用指針常量可以增加代碼的可靠性和執行效率。

3.2 常量指針的例子

1
2
3
4
5
6
7
/*常量指針的例子*/
int a,b;
int const *p;   //或者const int *p
p = &a;//正確
p = &b;//正確
  
*p = 20;//錯誤

關於區分指針常量的一個小技巧:const後的內容爲不能修改的。例如指針常量 int * const p = &a;則表示指針p的內容不能修改;常量指針int const *p = &a;則表示指針p所指向的內容(*p)不能修改。

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