一、指针运算符&的不同作用:
注释:在理解下面的&作用时,你要明白数组的数组名就相当于指针变量,数组名储存的是数组的首地址。
1、普通变量中:
例如: int a=5; &a表示取变量a的地址,对应的指针类型是 int *,长度是变量类型的长度。
2、数组变量中:
例如: int a[3]={1,2,3}; a和&a表示的是数组的首地址,不同的是a对应的指针类型是 int * 长度是数组一个元素地址的长度,a+1表示的是a[1]的地址。而&a对应的指针类型是 int (* )[ ] 长度是整个数组地址的长度。 &a+1的的地址是&a[3] + 1的地址。
多维数组的原理与上相同
总结:在数组变量中 &数组名(例如上面的:&a)表示的是比当前数组还多一级的数组指针数组;
3、指针变量中:
例如:int *p, b; p = &b; 其中的p表示的是变量b的地址,&p表示的是指针变量p的地址。