例如 int *p=&a;
写法应该是*号和p是一个整体,比如连续定义:int *p1, *p2, *p3;
但是实际含义应该是int和*号一个整体,代表一个指针类型,完整格式为:int* p; p=&a;
为什么在定义的时候要将*号和p当做一个整体呢?我经常会搞混指针定义和指针取地址,还是说我的理解是错误的?
其实int *p和int* p两种写法都是合法的,但是int* p这样的写法容易造成误解,如 int* p1, p2,这时p1的类型是int,p2的类型是int,但因为和int写在一起,容易误解p2的类型也为int*,而写作 int *p1,p2 就不会有误解了。
int *p当一个整体时,是定义一个变量,该小虚竹 变量是一个指针类型;
*p当做一个整体时,是取该指针指向的地址对应的值;
定义的时候也并没有把号和p当做一个整体啊。你可以把int看作是一种数据类型——整形指针的数据类型。至于是int*还是int p=&a,其实空了一个也不就代表p是一个整体。
望采纳!