3

我正在努力理解正确的指针语法,各种来源似乎做得不同。

其中哪一项是正确的?

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

还有这些?

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

很抱歉初学者的问题,但我似乎无法找到一个直接的答案。

*是在数据类型之后,变量名称之前还是在两者之间?

4

3 回答 3

2

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

要提防的一件事是:-

int* i,j;

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

int *i;  
int j;   

或者,如果您坚持将它们放在一条线上

int j, *i;
于 2012-07-13T09:12:03.960 回答
0

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

考虑一下声明/代码描述的内容并相应地加入它们。

例如

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

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

您希望选择一个易于他人阅读和/或流行使用的标准,以便更轻松地过渡到新的商业开发站点。它们都将具有相似的编码标准。

于 2012-07-13T08:02:41.307 回答
0

他们都是正确的。运算符之间、名称和运算符之间的空格等是不相关的。

以对您来说最易读的方式进行。

于 2012-07-13T08:54:46.277 回答