int *指针与int *指针声明的指针

时间:2011-11-04 18:42:54

标签: c++

  

可能重复:
  What makes more sense - char* string or char *string?

指针的语法从来没有对我有意义。我注意到这两个选项都适用于声明指针。我应该使用哪一个?

8 个答案:

答案 0 :(得分:5)

对于C编译器来说,空白是非常重要的。

如果您在同一行上有多个声明,那么差异就更大了:

int* p1, q1;   // p1 is a pointer to int, q1 is an int.
int *p2, *q2;  // p2 and q2 are both pointers to ints.

将星号放在变量名称附近可能会帮助您记住这一点。但是,将每个变量声明为自己的行可能更好。

答案 1 :(得分:2)

间距与解析无关。有3个标记:int,*和指针。

答案 2 :(得分:2)

您也可以使用

int * pointer

这只是个人偏好的问题。只要你有正确的语法,c ++编译器就会知道你的意思。

答案 3 :(得分:2)

这是一个风格问题,因此您应该使用与处理相同代码的其他人相同的风格(一致)。如果只是你,请选择你喜欢的。

个人会争辩int *pointer,因为int* a, b;int *a; int b;的意思相同,而不是int *a; int *b;,可以认为这是一个边缘的情况。

答案 4 :(得分:1)

它们是等同的,是个人偏好的问题。

为了完整性,我想补充一点,如果你要宣布两个指针,你将不得不写:

int *a, *b;

如果您写int *a,b,最终会有一个指向int和一个int的指针。

答案 5 :(得分:1)

来自Microsoft的一体化代码框架编码标准:

  

在指定指针类型/变量时,应在*字符和类型之间放置一个空格,但'*'字符和变量之间不应有空格。设置此规则应在代码中保持一致和统一。

答案 6 :(得分:0)

两者之间没有区别。使用你喜欢的那个。

答案 7 :(得分:0)

他们都是平等的。选择您最喜欢的那个,或者如果您正在编辑现有代码,请遵循样式指南。