我正在努力理解正确的指针语法,各种来源似乎都采取了不同的方式。
其中哪一个是正确的?
int* p = NULL;
int * p = NULL;
int *p = NULL;
和这些?
*p = &x;
* p = &x;
对于初学者问题感到抱歉,但我似乎无法找到答案。
*
是否在数据类型之后,就在var名称之前或之间?
答案 0 :(得分:2)
所有这些都是有效的,并且具有相同的含义,因此这是个人选择的问题。
要注意的一件事是: -
int* i,j;
尽管出现这种情况,但它声明i
作为指向int的指针,但是 j
只是一个int。有关详细信息,请参阅this question here。如果你真的想要这个,请使用..
int *i;
int j;
或者,如果你坚持让他们在一条线上
int j, *i;
答案 1 :(得分:0)
这更像是一个语法问题,哪个是“正确的”,因为它们都是有效的。
考虑声明/代码描述的内容并相应地加入它们。
e.g。
“我想要一个名为p的 int指针”暗示:int* p
“我希望contents pointed to by p
包含x的地址”暗示:*p = &x
您希望选择一个易于他人阅读和/或广泛使用的标准,以便更轻松地过渡到新的商业开发网站。他们都有类似的编码标准。
答案 2 :(得分:0)
所有这些都是正确的。运营商之间,名称和运营商之间的空白等无关紧要。
以对您最具可读性的方式进行。