指针类型而不是变量名称?

时间:2012-11-29 18:24:18

标签: c pointers

  

可能重复:
  In C, what is the correct syntax for declaring pointers?
  Correct C pointer notation

之间有什么区别
int* x

int *x

(如果存在的话)?

6 个答案:

答案 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;表示ppointer,但qint。它表示*与标识符名称

相关联

答案 5 :(得分:1)

它们是相同的,但在声明多个变量时你必须要小心:

 int* x, y; // x is a int*, while y is just an int
 int *z, *w; // both z and w are int*