常量引用或指向常量的指標,其所指物件可以是非const物件(C++)
常量引用:
常量引用即為對const的引用,其僅對引用可參與的操作做出了限定,但對於引用的物件是否為const常量並未做限定。若引用物件是const常量,那麼無論通過何種方式都不允許改變物件的值;若引用物件是非常量,則允許通過其他途徑改變其值。如:
int i=47;
int &r1=i;
const int &r2=i;
此時不允許對r2進行改變其值的操作,因為r2位常量引用,但可以通過改變r1或直接改變i來達到改變值的目的。
i=0;//行!
r1=0;//行!
r2=0;//不行!
——————————————————————————————————————————————————
指向常量的指標:
指向常量的指標同理
int i=47;
int *p1=&i;
const int *p2=&i;
可以通過改變*p1或i來改變值,但p2不允許這麼做。
i=0;//行!
*p1=0;//行!
*p2=0;//不行!
——————————————————————————————————————————————————
可以這樣理解:
所謂指向常量的指標或引用,不過是指標或引用“自以為是”罷了,它們覺得自己指向了常量,所以自覺地不去改變所指物件的值。物件的值到底能不能修改只取決於其本身。
相關文章
- 指向常量資料的指標和常量指標指標
- 指向const物件的指標 和 const指標物件指標
- 指標常量和常量指標指標
- 再學C/C++ 之 指標常量 和 常量指標C++指標
- 詳解 常量指標和指標常量指標
- 指標常量和常量指標的區別指標
- 指標和常量指標
- c指標之字串常量指標字串
- C++父類指標指向子類物件的實現原理C++指標物件
- C/C++指向指標的指標C++指標
- C++中const與指標、引用的總結C++指標
- C++ const常量的理解C++
- JAVA中的指標,引用及物件的cloneJava指標物件
- 用指向基類物件的指標輸出資料物件指標
- 指向指標的指標指標
- C++引用和指標C++指標
- 120 C++中的物件指標C++物件指標
- 詳解c++指標的指標和指標的引用C++指標
- const指標的引用指標
- 關於C/C++ const變數 const指標 以及C++ 引用變數的解析C++變數指標
- C/C++——指向函式的指標和指向函式的指標的陣列C++函式指標陣列
- C++中的指標與引用C++指標
- [C++]指標和引用(一)C++指標
- [C++]指標和引用(二)C++指標
- [C++]指標和引用(三)C++指標
- [C++]指標和引用(四)C++指標
- 注意C++中物件指標,慎用void*C++物件指標
- 如何理解指向指標的指標?指標
- C++指標與引用的區別C++指標
- Go 陣列指標(指向陣列的指標)Go陣列指標
- C++中函式指標與函式物件C++函式指標物件
- 指向函式的指標函式指標
- 指向陣列的指標陣列指標
- 深入探索 C/C++ 陣列與指標的奧祕之二:陣列名是一個指標常量嗎?C++陣列指標
- C、C++用指標引用的差異C++指標
- 指標問題的一點體會(區別 [指向指標的指標] 與 [指標的指標] .) (轉)指標
- 指標與const指標
- 【原創】淺談指標(十三)指向陣列的指標指標陣列