1
leiz 2012-08-25 01:46:02 +08:00
用的是*a,还是a?
|
2
lldong 2012-08-25 01:52:53 +08:00 2
一个好处可能是不会写出,`int* a, b;` 然后认为`b`也是一个指针;
|
3
skydiver 2012-08-25 02:51:44 +08:00
楼上正解
|
4
aaronmix 2012-08-25 02:56:09 +08:00
据我所知只是个人习惯而已,有的人理解起来觉得int *a比int* a更容易。在绝大部分编译器看来都是一样的。
|
5
21grams 2012-08-25 11:46:29 +08:00
我一直都写int* a,对我来说这更好理解。
像int *a,b; 这样的写法本身就应该避免。 |
6
io 2012-08-25 13:24:11 +08:00
可以这样解释,int表示引用一个函数/变量时返回的数据类型。如 int fun();int a;int *a; 不知道这样理解是否严谨
|
7
xatest 2012-08-25 13:30:44 +08:00
相反,我都写成int* a;
因为左边表示类型(指针也是类型),右边表示变量的名字(指针不是名字的一部分)。 同理引用也是int& a; 我从来不在一行内声明多个变量。 |
8
thinkinnight 2012-08-25 15:14:08 +08:00
主要是预防本来想定义两个指向int的指针a,b,也就是int *a, *b;但是在写的时候写成int* a, b;
此时b就是int类型,而不是指针了。 |
9
freestyler 2012-08-25 16:27:27 +08:00
|
10
goool 2012-08-25 18:31:31 +08:00
因为 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类型的,不明白为何这样设计。 |