在C++中的聲明什麼 char const *ptr=&ch;
和 const char *ptr=&ch;
在C++指針
在C++指針
回答
它們是相同的,即pointer to const char
。
但是char * const ptr
是不同,是const pointer to (non-const) char
。
而剛剛完成設置,const char * const ptr
是一個const pointer to const char
。
+1。完整答案。 – ereOn 2010-04-30 07:32:08
這是一個很好的例子,有利於在*類型被限定後加入'const'限定*。 'char const *'對許多人來說看起來很奇怪,但它與'char const * const'一致。 – 2010-12-20 08:22:07
在C++中沒有差之間的差。
重要的是const
在*
之前或之後*
。
常規適用於它的左邊的任何東西(除非在那裏沒有任何東西在這種情況下適用於它的直接權利)。所以沒有區別。
char * const ptr
雖然是一個指向變量值的常量指針。
其他答案已經涵蓋了技術解決方案 - 你的兩個例子是相同的。
很多人喜歡在C++中處理const
時從右到左閱讀。在英語中,我們喜歡想一個常量X,而C++喜歡解析一個X const。從右向左讀取產生更多英文結果。
一個相當極端的例子:
C const * bar(A * const, B const * const) const;
由右至左此讀爲常數函數bar
取作爲參數恆定的指針到一個A
和恆定指針到恆定B
,返回指針到一個常數C
'。請注意,所有三種指針都不相同。
如果有人感興趣,Stephen C. Dewhurst的書「C++ Gotchas」談論了這種聲明指針的技巧。 – TheJuice 2010-04-30 10:37:18
char const *ptr=&ch;
和const char *ptr=&ch;
表示char是const,其中指針是可變的(或者可以改變)。
但是在char * const ptr
的情況下,一旦設置它就不能重新分配指針。所以它是一個char字符串的const指針。
- 1. 在C++中爲指針指定指針
- 2. 指針在C#
- 3. 指針在C
- 4. 指針 - 在C++
- 5. 指針在C
- 6. 指針vs指針指針C
- 7. C指針指針問題
- 8. C++矢量指針指針
- 9. C指針指針數組
- 10. Memoryleak指針指針,C++
- 11. 指針值C空指針
- 12. typedef指針在C
- 13. 使在C++ **指針
- 14. 指針在C++/CLI
- 15. 指針在C++/CLI
- 16. 單指針在C
- 17. 在C和C++中,const指針指針指的是什麼?
- 18. 指針在C,整數指針字符指針
- 19. C++ - 指向數組的指針 - 指針
- 20. 指向C++指針的指針
- 21. C/C++多指針?
- 22. C++指定指向指針
- 23. Objective C指針
- 24. C++指針類
- 25. 指針/類C++
- 26. Objective-C指針?
- 27. C++指針
- 28. C++ - 空指針
- 29. C雙指針
- 30. C - strcpy指針
有沒有區別,欲瞭解更多信息:http://duramecho.com/ComputerInformation/WhyHowCppConst.html – Akanksh 2010-04-30 07:28:19
可能重複的http://stackoverflow.com/questions/2211954/difference-between-these-two-const -pointer-declarations-c – starblue 2010-05-01 21:49:21
此外,您可以使用[cdecl.org](http://cdecl.org) – bashor 2012-02-02 23:41:17