0
A
回答
1
Type const* p
是一個指向常量對象的指針,其類型爲Type
。從左到右讀,指針指向星號之前的所有東西。同樣,Type const* const q
是一個常量指針,指向類型爲Type
的常量對象。
另外,*p
不能通過p進行修改。定義爲p
以便指向*p
並承諾不對其進行修改。然而,*p
,p的指針,可以通過指向它的任何其他指針進行修改。
例如,我們可以有
Type t;
Type const* pc = &t;
Type *pnc = &t;
pc
承諾不改變T,pnc
沒有。假設類類型帶有const inspect() const
方法和非const mutate()
方法。然後,我們可以有
pc->inspect();
pnc->inspect();
pnc->mutate();
,而這一次將上升編譯器的錯誤:
pc->mutate();
Type const* const q
是一個指向一個const對象和*q
不能至Q修改,就像頁。更重要的是,指針q
不能修改:它不能再次分配指針。
此外,雖然這可能聽起來很奇怪,你被允許在代碼中,以改變指針指向Type const* p
型Type
的對象 - 但不是通過p
。
0
我推薦閱讀這篇文章,它解釋瞭如何使用const非常清晰,包括常量指針,指向常量的指針和指向常量的常量指針。希望你喜歡它! http://duramecho.com/ComputerInformation/WhyHowCppConst.html
0
是不能修改的,但是,它只能保證該變量的指針指向將是恆定的,它是不一樣的東西Type const* const q
這也保證了指針是恆定
相關問題
- 1. 關於「int const * p」和「const int * p」
- 2. GetField const類型的基類
- 3. 爲什麼{typedef int * PTR; const PTR p = #}不等於「const int * p = num」而是等於「int * const p = num」?
- 4. 錯誤:</p> <p>錯誤:在const的返回類型
- 5. 在C++類型轉換從短陣到短CONST * const的*
- 6. 括號爲const類型GCC
- 7. 類const const C中的令牌無效#
- 8. C++中char * p和const char * p有什麼區別?
- 9. 在C++中Const類型的困境
- 10. 德爾福PChar類型C++爲const char *
- 11. const類型的C++模板泛化
- 12. 用「const」關鍵字C類型鑄造
- 13. Const數據類型不能被分配到一個非const數據類型
- 14. C++ - 使用操作符重載無法比較const和非const模板類型
- 15. const成員函數VS const的返回類型
- 16. const類型'NSString * const __strong'的對象的默認初始化?
- 17. 從trait獲得const或非const引用類型
- 18. 返回引用一個const指針爲const類型
- 19. C++ Uint8數據類型轉換爲const char *數據類型
- 20. 靜態/ const型* const的區別
- 21. C++爲const char *爲const char * const的
- 22. const char ** p指針和整數之間的比較if(** p == NULL)
- 23. 返回const或non-const在主要類型中有什麼區別C++
- 24. Pascal:Const Const Const
- 25. 對於Class :: Type類型,我可以從const類派生const Class :: Type嗎?
- 26. 使用const void *((struct str_name *)p) - > str_dataitem;
- 27. 爲const和普通型
- 28. C++ const成員函數返回一個const指針..但是返回的指針是什麼類型的const?
- 29. 爲什麼在const方法爲public並且非const類型被保護時,C++不會強制轉換爲const?
- 30. 在模板中獲取非const類型
相關,不同樣的問題。我想知道如果p是一個'Type const * p',我是否可以修改p的pointee。韓國社交協會。 – octoback 2013-04-21 11:08:50