在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