區分常量指針和指針常量的一個簡單方法

看見很多書上和網友討論常量指針和指針常量,扯來扯去搞得自己都糊塗了。記得在看Nicholas A. Solter寫的Professional C++的時候看到一個很不錯的方法,現在推薦給大家:const應用於緊挨着位於其左側的間接層(間接引用)。

比如const int *i;const 的左邊什麼都沒有的時候const可以移動到它緊挨的關鍵字的右邊,也即上式等同於int const *i;因爲const的左邊緊挨着的是int,所以這是一個常量指針-即指向常量的指針(pointer to const)。

而int *const i;中const的左邊緊挨着的是*,所以這是一個指針常量(const pointer)。

那麼const int *const i;也就好解了:第一個const指向int,也就是說int是const 的,第二個const指向*,也就是說pointer是const的。

這個方法又好記,又好用,REC。

發佈了27 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章