数组指针

 int ar[5]={1,2,3,4,5};
int (*p)[5]=&ar;
printf("%d\n%d\n",p,*p);//结果为5240728,5240728
printf("%d\n%d",p+1,*p+1);//结果为5240748,5240732

为什么结果会是这样呢

p为数组指针,存储的是整个数组的地址——&ar,而数组名ar是他的首个元素的地址——&ar[0]

由第一条printf语句可以看出&ar=&ar[0],但是,p+1的实质是加上整个数组的长度20个字节,而*p+1则是加上数组中一个元素的长度4个字节

上一篇:7、小型企业无线网部署(案例3) AR充当AC的组网趣事~看看真机环境下会遇到什么问题


下一篇:从 AR Cloud 前景看当下AR应用