在C++中,我看到指针以不同的方式放置.例如,
char* ptr
char * ptr
char *ptr
Run Code Online (Sandbox Code Playgroud)
以上3个例子是否相同?(与&相同)
无所谓.(例如,它们是相同的.)你甚至可以在char*ptr;没有任何空白的情况下写作.
请注意,在一行中有多个声明:char* ptr, noptr;.在这里,第三种语法更加清晰:char *ptr, noptr;.
我的规则是避免这种混淆:每行只有一个变量.另一种方法是在没有错过的情况下做到正确*:typedef指针,例如:
typedef char* CharPtr;
CharPtr ptr1, ptr2; // now both are pointer
Run Code Online (Sandbox Code Playgroud)
虽然那时你需要注意其他事情,比如constness,所以我坚持上面提到的规则:
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?
Run Code Online (Sandbox Code Playgroud)
(以上所有内容也适用于参考文献&.)
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |