指针的语法从来没有对我有意义。我注意到这两个选项都适用于声明指针。我应该使用哪一个?
答案 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)
他们都是平等的。选择您最喜欢的那个,或者如果您正在编辑现有代码,请遵循样式指南。