数组指针的理解

int(*p)[n]形式,定义p为指向长度为n的int型一维数组的数组指针

例如:

int a[5] = {1,2,3,4,5};

int(*p)[5] = &a;

*p即等价a,a为指向第一个元素的指针,即a为&a[0],在此处为int型指针,所以访问数组元素可以用a[i]、*(a+i)或*p[i]、*(*p+i)。


相似的,二维数组形式相似。


例如:

int a[2] [5]= {{1,2,3,4,5},{6,7,8,9,0}};

int(*p)[2][5] = &a;

*p即等价a,a为指向第一个元素的指针(该二维数组的第一个元素为一个长度为5的int型一维数组),在此处为指向“一个长度为5的int型一维数组”的数组指针(int(*)[5]),所以访问数组元素可以用a[i][j]、*(a[i]+j)【等价*(*(a+i)+j)】或(*p)[i][j]、*(*(p+i)+j)【等价*(*(*p+i)+j)】。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值