`
xpp02
  • 浏览: 1013925 次
社区版块
存档分类
最新评论

数组指针 和 指针数组

 
阅读更多

最近发现公司有些人说怎样区分 数组指针 和 指针数组 ? 其实 很简单;


数组指针, 先是(定语 ) (主体), (定语 数组) + (主体 指针) ,就说明, 这是一个指针 (主体 指针), 指向的是一个 (定语 数组);


例如:

int a[3][4];
int (*p)[4] = a; // p 是数组指针, p指向的是a数组,并把a[0] 赋值给 p;

p++; // p++ 后p指向 a[1]

p++; // p++ 后p指向 a[2]



指针数组,按 先是(定语) (主体), (定语 指针) (主体 数组) ,就说明, 这是一个 数组, 数组中的每个元素都是指针;


int a[4],b[8],c[12],d[20];

int *p[4]; //指针数组, 数组中的每个元素都是指针;


p[0] = a;

p[1] = b;

p[2] = c;

p[3] = d;



增加使用实例:

int a[3][4]= {0,1,2,3,4,5,6,7,8,9,10,11};
int *p[3] = {(int*)a,(int*)(a+1),(int*)(a+2)};
int (*p2)[4] = a;
printf("%d\n",p[2][3]);

printf("%d\n",p2[2][3]);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics