我正在努力理解正确的指针语法,各种来源似乎做得不同。
其中哪一项是正确的?
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
您希望选择一个易于他人阅读和/或流行使用的标准,以便更轻松地过渡到新的商业开发站点。它们都将具有相似的编码标准。
他们都是正确的。运算符之间、名称和运算符之间的空格等是不相关的。
以对您来说最易读的方式进行。