0
点赞
收藏
分享

微信扫一扫

C经典 一维数组指针解析


#include <stdio.h>

int main(int argc, const char * argv[])
{

//
int a[] = {1,2,3,4};
int *pa[] = {&a[0],&a[1],&a[2],&a[3]};
printf("*pa[0] = %d\n",*pa[0]);//==1
printf("*pa = %p\n",*pa);//==0x7fff5fbff870
printf("**pa = %d\n",**pa);//==1

printf("&pa[0] = %p\n",&pa[0]);//指针数组的地址 ==0x7fff5fbff850
printf("&a[0] = %p\n",&a[0]);//数据的地址 == 0x7fff5fbff870

//------------------------
int arr[2][2] ={1,2,3,4};
int *parr[2] = {arr[0],arr[1]};
printf("*parr == %p\n", *parr);// ==0x7fff5fbff840
printf("**parr == %d\n", **parr);// ==1
printf("**(parr+1) == %d\n", **(parr+1));// parr+1 指向arr[1]的地址,所以 ==3


return 0;
}


举报

相关推荐

0 条评论