可能的重复:
在C中,为什么星号在变量名之前,而不是在类型之后? https://stackoverflow.com/questions/398395/in-c-why-is-the-asterisk-before-the-variable-name-rather-than-after-the-type
您首选的指针声明样式是什么,为什么? https://stackoverflow.com/questions/377164/whats-your-preferred-pointer-declaration-style-and-why
在 C++ 中,我看到指针以不同的方式放置。例如,
char* ptr
char * ptr
char *ptr
上面的 3 个例子是否相同? (与 & 相同)
没关系。 (例如,它们是相同的。)你甚至可以写char*ptr;
没有任何空格。
但要注意一行中有多个声明:char* ptr, noptr;
。在这里,第三种语法更加清晰:char *ptr, noptr;
.
我避免这种混乱的规则是:每行只有一个变量。另一种正确完成任务而不会错过的方法*
: typedef
指针,例如:
typedef char* CharPtr;
CharPtr ptr1, ptr2; // now both are pointer
不过你需要注意其他事情,比如const
ness,所以我坚持上面提到的规则:
typedef char* CharPtr;
const CharPtr p1; // const char* ?? or char* const ??
CharPtr const p2; // char* const ?? or const char* ??
// Eg.: Can't the pointer or the pointee be changed?
(以上所有内容也适用于参考文献&
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)