和有什么区别
int* x
和
int *x
(如果存在)?
他们都一样。唯一的区别是您不能以这种方式声明许多变量:
int* x, a, b; //a and b are not pointers
int *x, *a, *b; //all are pointers
我使用第一种表示法,对我来说它表明变量具有指针类型,而不是指针本身。
没有区别。在这两种情况下,您都会得到一个 int 指针。
更喜欢第二个的原因是当您一次声明多个变量时:
int *str, *foo;
int* str, foo;
这两行是不同的,第一行声明了两个指向 int 的指针,而第二行声明了一个指向 int 的指针和一个 int 类型变量。
这与指针的定义相同。两者都是指向 int 的指针
在这种情况下,空格对编译器没有意义。但是,有些人可能会将其解释为不同的含义(例如什么指向什么)。在我看来,这不是一件好事(因为空格不应该被考虑在内)。
完全没有区别。
在这两种情况下,这些都是指向int
*
与标识符而不是类型相关联
只是为了清晰的视觉最佳实践,在type
和之间留出空间*
。
int *p;
例如,如果你写
int *p,q;
手段p
是 apointer
但是q
是int
。它表示 * 与标识符名称相关联
它们是相同的,但是在声明多个变量时您必须小心:
int* x, y; // x is a int*, while y is just an int
int *z, *w; // both z and w are int*