
1 leiz Aug 25, 2012 用的是*a,还是a? |
2 lldong &nbs; 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类型的,不明白为何这样设计。 |