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

C++ 指针声明的int*指针与int*指针,c++,C++,可能重复: 指针的语法对我来说从来没有意义。我注意到这两个选项都适用于声明指针。我应该使用哪一种?两者之间没有区别。使用你更喜欢的一个。它们都是相等的。选择您最喜欢的代码,或者如果您正在编辑现有代码,请遵循样式指南。间距与解析无关。有3个标记:int、*和pointer。对于C编译器来说,空格是无效的 如果在同一行上有多个声明,则差异更为重要: int* p1, q1; // p1 is a pointer to int, q1 is an int. int *p2, *q2; // p

可能重复:


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

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

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

间距与解析无关。有3个标记:int、*和pointer。

对于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.
将星号放在变量名附近可能会帮助您记住这一点。但是最好只在自己的行中声明每个变量。

您也可以使用

int * pointer

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

这是一个风格问题,所以你应该使用与其他代码相同的风格(一致)。如果只有你,选你喜欢的


个人会为
int*pointer
争论,因为
int*a,b表示与
int*a相同;int b
int*a;int*b,正如人们所想,但这是一个公认的边缘案例。

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

为了完整起见,我想补充一点,如果您要声明两个指针,您必须编写:

int *a, *b;

如果您编写
int*a、b
,则最终会得到一个指向
int
的指针,以及一个来自Microsoft多功能一体式代码框架编码标准的
int

指定指针类型/变量时,应在*字符和类型之间留出一个空格,但“*”字符和变量之间不应留空格。设置此规则是为了在代码中保持一致和统一


不管你喜欢哪一个,只要你与你正在工作的项目的其他部分的格式保持一致。或者:不久前,我在这里看到一个问题,海报把这两者混在了一起。对我来说,变量是指针,而不是类型,这让我使用第二种选择。但这可能与我是在老式C语言上“长大”的有关:-)我正在努力学习C语言,我倾向于同意马克的观点。考虑到
int p1,q1
将声明两个整数,
int*p1,q1
给了我一个指向一个整数和一个整数的指针,这让我很困惑。如果有人在看c代码,但不知道语法,那么两行代码就最好了,也不会那么混乱<代码>int*p1;int q1。如果
*p1
自动指向
q1
的地址,我可以看到它有用处,但它仍然需要分配。如果您不知道语法的这个细节,充其量
int*p1,q1
对您来说可能是模棱两可的。一行可能更短,但两行对我来说更干净、更清晰。