更正C++指针语法

Correct C++ pointer syntax

本文关键字:语法 指针 C++ 更正      更新时间:2023-10-16

我很难理解正确的指针语法,各种来源的做法似乎有所不同。

以下哪一项是正确的?

int* p = NULL;
int * p = NULL;
int *p = NULL;

还有这些?

*p = &x;
* p  = &x;

抱歉问了初学者这个问题,但我似乎找不到一个直接的答案。

*是直接位于数据类型之后、变量名称之前还是介于两者之间?

所有都是有效的,并且具有相同的含义,所以这是个人选择的问题。

需要注意的一件事是:-

int* i,j;

尽管如此,它声明i是指向int的指针,j只是一个int。有关详细信息,请参阅此处的此问题。如果你真的想要这个,请使用。。

int *i;  
int j;   

或者,如果你坚持把它们放在一行上

int j, *i;

这更多的是一个语法问题,关于哪一个是"正确的",因为所有的都是有效的。

思考声明/代码所描述的内容,并相应地加入它们。

例如

"我想要一个名为p的int指针"意味着:int* p

"我想让contents pointed to by p包含x的地址"意味着:*p = &x

您希望选择一个易于他人阅读和/或广受欢迎的标准,以便更容易过渡到新的商业开发网站。它们都将有类似的编码标准

所有这些都是正确的。运算符之间、名称和运算符之间的空白等都不相关。

按照你最容易阅读的方式去做。