C语言指针(&运算符在指针中的不同作用)

一、指针运算符&的不同作用:

  注释:在理解下面的&作用时,你要明白数组的数组名就相当于指针变量,数组名储存的是数组的首地址。

 

  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的地址。

 

posted @ 2020-05-25 22:59  Pudl  阅读(1703)  评论(0编辑  收藏  举报