C语言 看图说话-二维数组·名·特征

二维数组本质上是存储一维数组的一维数组,其数组名代表第0行的地址。通过行偏移和列索引进行空间访问,如数组名+1表示下一行的地址,&数组名+1则表示整个数组的地址偏移。访问多维数组成员涉及嵌套寻址过程,通过*(地址+偏移)的方式逐层找到目标空间。
摘要由CSDN通过智能技术生成

 在图中,我们定义了一个int类型的二维数组。在这个数组中,数组名找到的就是第0行的地址,所以我们在数组名上加1可以找到第1行的地址,再*操作就可以得到第一行的空间。在得到行空间的基础上想要得到这行中某一成员的空间,就要在这个行空间上加上偏移量,找到某一成员的地址,再*操作就可以得到成员的空间了。这其实就是二维数组寻找成员空间的计算过程,化简之后就变成了数组名[][],前面是行后边是列。那么二维数组名取地址找到的就还是二维数组的地址,它加上1找到的就是二维数组后面的地址,并且*操作后得到的空间大小与二维数组的空间大小相等。接下来看这几个问题:

1.二维数组的存储本质?

答:它是存储一维数组的一维数组。在书写两个[]时要遵循先行后列的原则。并且可以不写行数,计算机会根据列数与成员数量自动划分行数,但是列数一定要写。

2.二维数组名代表什么?

答:代表第0行的地址。

3.二维数组名+1与&二维数组名+1的区别?

答:二维数组名+1是二维数组中的行偏移,找到的是后面一行的地址,而&二维数组名+1属于是二维数组的偏移,找到的是二维数组后面的地址。

4.多维数组的空间访问原理?

答:我认为他就是一个嵌套寻找空间的过程,就是不断利用*(参考地址+偏移)这个公式来逐层寻找空间。如果是访问三维数组中某一成员的空间,那么就是三层嵌套,第一层先利用数组名加偏移找到某一个平面的地址,对他*操作后得到这个平面的空间,再利用这个空间加偏移找到这个平面中某一行的地址,*操作后得到这行的空间,最后利用得到的这个行空间加偏移找到某一个成员的地址,对整体*操作后就可以得到这个三维数组中某个成员的空间了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员懒羊羊

多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值