5

可能重复:
在 C 中,声明指针的正确语法是什么?
正确的 C 指针表示法

和有什么区别

int* x

int *x

(如果存在)?

4

6 回答 6

7

他们都一样。唯一的区别是您不能以这种方式声明许多变量:

int* x, a, b; //a and b are not pointers

int *x, *a, *b; //all are pointers

我使用第一种表示法,对我来说它表明变量具有指针类型,而不是指针本身。

于 2012-11-29T18:26:01.417 回答
1

没有区别。在这两种情况下,您都会得到一个 int 指针。

更喜欢第二个的原因是当您一次声明多个变量时:

int *str, *foo;
int* str, foo;

这两行是不同的,第一行声明了两个指向 int 的指针,而第二行声明了一个指向 int 的指针和一个 int 类型变量。

于 2012-11-29T18:25:15.873 回答
1

这与指针的定义相同。两者都是指向 int 的指针

于 2012-11-29T18:25:29.010 回答
1

在这种情况下,空格对编译器没有意义。但是,有些人可能会将其解释为不同的含义(例如什么指向什么)。在我看来,这不是一件好事(因为空格不应该被考虑在内)。

于 2012-11-29T18:25:40.513 回答
1

完全没有区别。

在这两种情况下,这些都是指向int

*与标识符而不是类型相关联

只是为了清晰的视觉最佳实践,在type和之间留出空间*

int *p;

例如,如果你写

int *p,q;手段p是 apointer但是qint。它表示 * 与标识符名称相关联

于 2012-11-29T18:25:56.923 回答
1

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

 int* x, y; // x is a int*, while y is just an int
 int *z, *w; // both z and w are int*
于 2012-11-29T18:26:06.410 回答