您的位置:首页 > 其它

C经典 一维数组指针解析

2016-05-02 10:35 190 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: