8.3 二维数组与指针

二维数组的指针

设二维数组:int a[3][4],i,j;

  1. 二维数组a中i行j列元素的地址为 &a[i][j]

二维数组在内存中映射为一个一维数组,因此可以通过指向元素的指针快速访问二维数组中的每个元素。

举个例子:利用指向数组元素类型的指针变量p,寻找数组a中元素的最大值。

注意:在for循环中初始化中,p=&a[0][0]和a=a[0]可以,其他格式不行,比如p=a。但是我输出a  &a[0][0]  a[0]这三个显示的是同一个地址,真是玄学。如果数组a是一维数组那么就可以p=a。

 

2. 二维数组的行地址

int a[3][4]; 由3行元素组成,即a:a[0],a[1],a[2]

而每行又由4个类型相同的元素组成,分别对应一个一维数组。

其中:

a为行元素数组的名字,即a代表&a[0],即0行的地址。

a+1代表&a[1],即1行的地址。

a+2代表&a[2],即2行的地址。

 

二维数组元素的指针法表示:

怎么理解呢?a[0]是由a[0][0],a[0][1],a[0][2],a[0][3]四个元素构成的一维数组,那么可以把a[0]看作是一维数组名。对于一维数组名,代表数组的首地址。

 

 

a[i]与*(a+i)等价,这里i的范围是0~2。还要注意:a[i]和&a[i]是一样的地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值