通俗易懂-二维数组只能省略行不能省略列-人话版本

因为搜索这个问题的时候出现了很多数据结构方面的相关解释,个人感觉对这个知识点有疑问的人,一般对相关数据结构的了解也存在欠缺。使用更深层次的理论来解释这种较直观的写法,对于知识尚欠缺的新手或学生来说,是毫无意义的。

问题:

为什么二维数组可以不指定一维,但是必须指定二维呢?

int num[][3] = {1,2,3,4,5}  //√
int num[2][] = {1,2,3,4,5}  //×

人话版本

  • 我现在有五个不同的苹果。
  • 我要按顺序分两组,那我一组分多少个呢?
  • 我可以一组分2个,另一组分3个,也可以一组分1个,另一组分4个,极端点,一组不给,一组给5个。
  • 这么多种分法,计算机又不是人,她不知道应该怎么分。
  • 那我换个分法,我要求一组你给我分3个,我不要求有多少组了。
  • 那么实际分法就从不确定变成了唯一的一种。
  • 也就是一组分3个,一组分2个,计算机觉得可以,于是就这么分了。
  • 至于具体分了几组,这个不需要你操心了,基础计数加减计算机可比你强多了。

问题解决,计算机觉得很赞,你也觉得很赞。

翻译每一句人话

我现在有五个不同的苹果。

分配5个数字假设分别为1,2,3,4,5。

我要按顺序分两组,那我一组分多少个呢?

将5个不同的数字分两组。

我可以一组分2个,另一组分3个,也可以一组分1个,另一组分4个,极端点,一组不给,一组给5个。

在不指定一列有多少个元素的情况下,计算机分组不确定,无法给出唯一的分组,出现错误。

这么多种分法,计算机又不是人,她不知道应该怎么分。

原文。

那我换个分法,我要求一组你给我分3个,我不要求有多少组了。

指定一组的大小,例如str[3]一组要求有3个元素,具体分多少组由元素的个数(苹果的个数)来定。

那么实际分法就从不确定变成了唯一的一种。也就是一组分3个,一组分2个,计算机觉得可以,于是就这么分了。

计算机根据初始规定的一组长度为3,将5个不同的元素分为了两组,一组1,2,3;另一组4,5,第二组虽然空了一个,但是没有关系。

至于具体分了几组,这个不需要你操心了,基础计数加减计算机可比你强多了。

计算机根据初始输入的元素个数,以及初始规定的一组长度来进行自动计算。帮你将5个元素按照一组3个的要求正确的放入2个数组自动完成元素分配。这就是为什么你无需指定第一维度的数字即int[][n]

问题解决,计算机觉得很赞,你也觉得很赞。

你听懂了,计算机也能正确分配,双赢。

还得是编故事才能听懂。
有问题请指出。
2022年08月02日12:40:17

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值