1
leiz Aug 25, 2012
用的是*a,还是a?
|
2
lldong Aug 25, 2012 一个好处可能是不会写出,`int* a, b;` 然后认为`b`也是一个指针;
|
3
skydiver Aug 25, 2012
楼上正解
|
4
aaronmix Aug 25, 2012
据我所知只是个人习惯而已,有的人理解起来觉得int *a比int* a更容易。在绝大部分编译器看来都是一样的。
|
5
21grams Aug 25, 2012
我一直都写int* a,对我来说这更好理解。
像int *a,b; 这样的写法本身就应该避免。 |
6
io Aug 25, 2012
可以这样解释,int表示引用一个函数/变量时返回的数据类型。如 int fun();int a;int *a; 不知道这样理解是否严谨
|
7
xatest Aug 25, 2012
相反,我都写成int* a;
因为左边表示类型(指针也是类型),右边表示变量的名字(指针不是名字的一部分)。 同理引用也是int& a; 我从来不在一行内声明多个变量。 |
8
thinkinnight Aug 25, 2012
主要是预防本来想定义两个指向int的指针a,b,也就是int *a, *b;但是在写的时候写成int* a, b;
此时b就是int类型,而不是指针了。 |
9
freestyler Aug 25, 2012
|
10
goool Aug 25, 2012
因为 C 语言中有一种尽可能让变量的「声明」与「使用」看起来差不多的奇怪传统。比如:
int *p; ... *p = 5; int a[8]; ... a[0] = 0; typedef int (*func)(int); func f; ... int ret = (*f)(3); // *可省略 |
11
ant_sz OP @lldong
@thinkinnight C语言这个特点比较纠结 typedef int* int_ptr; 之后,在进行 int_ptr a,b; 得到的a和b都是指针,但是 int* a,b; b确实是int类型的,不明白为何这样设计。 |