二维数组+内存图+经典习题

为什么要有二维数组,一个学校有很多班级存这个班级需要一个数组,然后这个数组中的每个元素又代表一个班级,班级下有很多学生,使用二维数组就可以很好得存储这样的数据

示例如下

如下图,刚刚定义好的二维数组在内存中的存储形式如下,方格里的为其值,下面的为下标

看看如下代码,注释部分为其输出,想想为什么(必须要先思考,然后看下面我的解释)

上图代码解析:打印arr结果为地址值,从上面的二维数组内存图可以看出,这里不多说

打印每个一维数组结果都为空,想想把一维数组看成班级,现在仅仅定义了班级的名字,而它的大小(其下数组的长度)

还没定义,也就是默的0,那么它还没赋值,一维数组是引用类型(不懂没关系,后面会学)没赋值就是null。

然后后面赋值后,就有了班级里的学生,怎么进行关联的呢,此时班级会指向其下学生的一维数组来进行关联,如上面二维数组内存图,然后我们所说的“学生”其实在这里只是一个个整数,而没赋值的整数为0,所以输出为0。

懂了后再看看下图图版解析

示例如下

练习一:用静态赋值方式定义一个二维数组并进行遍历

改进后,把第一次第二次遍历的次数都改为数组长度,如下(不可能你定义了一万多个数你还去数他的具体长度吧)

练习二

练习三

分析给了,答案就不给了,这道题主要考的是一个思维逻辑以及对二维数组的遍历的综合

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值