可能重复:
In C, what is the correct syntax for declaring pointers?
Correct C pointer notation
之间有什么区别
int* x
和
int *x
(如果存在的话)?
答案 0 :(得分:7)
他们俩都一样。唯一的区别是你不能以这种方式声明许多变量:
int* x, a, b; //a and b are not pointers
int *x, *a, *b; //all are pointers
我使用第一种表示法,对我来说它表明变量有指针类型,而不是指针本身。
答案 1 :(得分:1)
没有区别。在这两种情况下,你都会得到一个int指针。
更喜欢第二个的原因是你一次声明多个变量:
int *str, *foo;
int* str, foo;
这两行是不同的,第一行声明两个指向int的指针,而第二行声明一个指向int的指针和一个int类型变量。
答案 2 :(得分:1)
它与指针的定义相同。两者都是指向int的指针
答案 3 :(得分:1)
在这种情况下,空格对编译器没有意义。但是,有些人可能会将其解释为具有不同的含义(如何指向什么)。在我看来,这不是一件好事(因为空白不应该被考虑在内)。
答案 4 :(得分:1)
没有任何区别。
在这两种情况下,这些都是指向int
*
与不属于
仅用于明确的视觉最佳做法,以便在type
和*
之间留出空间。
int *p;
例如如果你写
int *p,q;
表示p
是pointer
,但q
是int
。它表示*与标识符名称
答案 5 :(得分:1)
它们是相同的,但在声明多个变量时你必须要小心:
int* x, y; // x is a int*, while y is just an int
int *z, *w; // both z and w are int*