正确的C ++指针语法

时间:2012-07-13 07:58:47

标签: c++ pointers syntax

我正在努力理解正确的指针语法,各种来源似乎都采取了不同的方式。

其中哪一个是正确的?

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

和这些?

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

对于初学者问题感到抱歉,但我似乎无法找到答案。

*是否在数据类型之后,就在var名称之前或之间?

3 个答案:

答案 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)

所有这些都是正确的。运营商之间,名称和运营商之间的空白等无关紧要。

以对您最具可读性的方式进行。