数组指针 和 指针数组

本文详细解释了数组指针和指针数组的概念,通过实例展示了如何区分两者,帮助开发者理解并正确使用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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


例如:

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]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值