-1
A
回答
7
没有。
但有
const char* name = "hello", something = "else";
这将无法正常工作之间的差异,而
const char *name = "hello", *something = "else";
应该
2
不,没有区别,两个声明都是等价的。
注意,空调风格趋于声明指针对象是这样的:
T *a;
而C++风格趋于声明指针对象是这样的:
T* a;
0
它基本上是一个口味问题。
,因为我要明确指出的类型是指针(一个char*
),但很多人认为,更正确的是使用const char *name
表明是指向我个人使用const char* name
(输入char
)
1
两者都被解析为const char (*name) = "name";
- *
被绑定到声明器,而不是类型说明符。
C和C++中的声明基于表达式的类型,而不是对象。如果你有一个指向某种类型的T
,并且您要访问所指向的价值,你的尊重指针:
x = *p;
的类型表达*p
是T
,所以指针的声明是
T *p;
在你的情况,name
指向一个char
值开头的字符串文字。如果我们想要去的字符值'n'
,我们就喜欢写东西
const char start = *name; // assigns 'n' to start
因此,表达是const char
的类型,所以我们通常写声明
const char *name;
因为C声明语法如何工作,围绕*
令牌的空白无关紧要。你可以写成:
const char *name;
const char* name;
const char * name;
或其他一些组合。我和其他许多人更喜欢第一种形式,因为它准确地反映了声明语法。还有其他人更喜欢第二种形式,即使它对语法有一些误导性的看法,因为它强调name
的类型。
任何声称喜欢第三种形式的人都是驯服或疯狂的。
相关问题
- 1. C++为const char *为const char * const的
- 2. 转const const wchar_t *为const char *
- 3. const char * const char **
- 4. 为const char * VS字符*
- 5. 不能将'const char *'转换为'char * const *'
- 6. Const char * vs const wchar_t *(concatenation)
- 7. const char ** name VS char * name []
- 8. NSString为char(不是const char)
- 9. 元帅为const char **
- 10. 为const char * Qt中
- 11. 如何将const char * const转换为const char *
- 12. 为const char *成员
- 13. 从DWORD为const char *
- 14. NSInteger的为const char *
- 15. `const char *'到`char'
- 16. C++ char const char *
- 17. 如何为const WCHAR *转换为const char *
- 18. 如何为const char *转换为const WCHAR *
- 19. int execle(const char * path,const char * arg,...,char * const envp []);
- 20. 为const char *为char *在我的情况
- 21. C++复制为const char *为char *
- 22. 铸造为const char *为char *崩溃
- 23. 为const char * myVar的对比为const char myVar的[]
- 24. 自动转换为const char []为const char *的模板函数
- 25. 转换型“的char **”,以“为const char **”
- 26. D-casting char [] const char []
- 27. C++:为const char * const的*的含义
- 28. “警告:类型默认为类型名称‘诠释’”声明为const char *
- 29. 不能将Const Char [21]转换为Char?
- 30. 在C++中将char *转换为const char *
你能解释一下那些有什么区别? – user1334858 2013-02-26 20:06:58
const char * a =“hello”,something =“else”;这将声明一个指向char类型的指针,并将其指定为char。你可以通过做一个“typedef char * pchar”来解决这个问题,它允许:pchar a =“hello”,something =“else”; – Dmitry 2013-02-26 20:08:52