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


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

    问题:

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

    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

  • 相关阅读:
    人工智能监考 VS 传统方式监考,你更喜欢哪一种?
    双向数据绑定
    IDEA2023.2.1中创建第一个Tomcat的web项目
    详细讲解什么是工厂模式
    现代 C++ 性能飞跃之:移动语义
    客户端远程连接mysql服务问题记录
    PyQt学习随笔:QStackedWidget堆叠窗口属性与使用
    【语音编码】基于matlab ADPCM编解码【G.723.1】(Matlab代码实现)
    Pyton conway生存游戏--代码参考
    TeeChart 的使用从入门到精通
  • 原文地址:https://blog.csdn.net/qq_41731201/article/details/126119693