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


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

    问题:

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

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

    人话版本

    • 我现在有五个不同的苹果。
    • 我要按顺序分两组,那我一组分多少个呢?
    • 我可以一组分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

  • 相关阅读:
    Apache APISIX Ingress v1.5-rc1 发布
    【Java】数组的深浅拷贝问题(二维数组举例)(136)
    零基础学Java第五节(面向对象一)
    Flink - Kafka 下发消息过大异常分析与 Kafka Producer 源码浅析
    Elasticsearch 认证模拟题 - 6
    卷积神经网络 图像处理,卷积神经网络识别图片
    快速理解python中的可迭代对象、迭代器、生成器
    PhotoShop 选中区域 变透明 透明化 导出图片
    软件架构(六)MVC架构历史
    springboot2.x版本集成redis说明(lettuce、redisson)
  • 原文地址:https://blog.csdn.net/qq_41731201/article/details/126119693