C语言是一门灵活的语言,有时不好的编码习惯,往往会带来意想不到的错误。
首先来看看一下这种声明方式。
int* a ;和 int *a; 一个*是挨着int ,一个是挨着a。那有什么不同吗? 答案是没有,都是一个指向int类型的指针。
但是,如果是以下这种写法呢?又该如何理解。
int* a, b, c;
很可能把这条语句误解为把 a,b,c 3个变量声明为指向整型的指针,但是事实并非如此。实际上 *是 *a表达式的一部分,*号只是对这个标识有用。所以上述的实际为 a为一个指针,而b和c仅仅为一个int型整数。
那么,要声明3个指针应该如下操作
int *a, *b, *c;
一句话总结,使用int* a,而不是 int *a这种形式,并不是一个好的技巧与习惯。