可能重复:
In C, what is the correct syntax for declaring pointers?
当我阅读C代码时,我看到了几种编写指针的方法,比如
int *p;
char * s;
char * d = &c;
ll_model* model = new_ll_model(n, cc->term);
double* avg_ll;
我的问题是:
他们之间有什么不同吗?
如果有,有什么区别?也就是说,空格和*
的位置是什么意思?
哪种方式是编写指针的正确方法,因此我自己和任何其他将阅读我的代码的人都可以阅读
答案 0 :(得分:2)
功能上,没有。你可以阅读:
int *p;
as“ p
指向的内容是int
”和
double* avg_ll
as“ avg_ll
的类型是指向double
的指针。” AFAIK,前者是首选的C风格,后者在C ++代码中更为普遍。
然而,作为C FAQ explains,如果您习惯在单个语句中声明多个变量,则后一种风格可能会导致错误。
答案 1 :(得分:0)
您发布的代码行之间存在很多差异,但它们都与您声明指针类型的方式无关。
空白并不重要。
可见的是在旁观者的眼中。我更喜欢在*
字符之前和之后放置一个空格字符。
答案 2 :(得分:0)
答案
答案 3 :(得分:0)
基本上,它们之间没有区别。
但我更喜欢这种方法:
int *p;
而不是:
int* p;
或
int * p;
原因是因为如果你想在同一行中声明一些int *
,那么将*
放在标识符旁边而不是类型更有意义,因为它看起来更干净而不那么混乱。 e.g。
int *p, *q, *r;
优于:
int* p, *q, * r;
如果您不喜欢我的理由,请确保坚持其中一个并且不要改变用法。