c++ - 在 C++ 中声明多维数组时,为什么只需要指定第二维的大小?
问题描述
例如,为什么 arr[ ][5] 可以,但 arr[5][ ] 不行?这个想法如何扩展到更大的维度?例如,您可以合法地将一个三维数组定义为 arr[ ][ ][5] 吗?
我只是第一次了解 MDA,我很难理解这一点,所以我很想听听解释/演练。谢谢!
解决方案
为什么 arr[ ][5] 可以,但 arr[5][ ] 不行?
因为如果你有“任意数量的 5 样东西的组”,你可以将它们全部连续地放在内存中,并准确地知道每样东西的去向——第一组 5 样东西去某个地方,然后下一组去 5 个值得——之后的空间,依此类推。但是如果你有“5组任意数量的东西”,那么你就不会提前知道第二组和后续组需要去哪里。此外,您不能保证组的大小都相同,这就是矩形阵列应该如何工作的。
推荐阅读
- qt - PySide2 QThread 错误:QThread:在线程仍在运行时被销毁
- node.js - 使用 Mongodb ($or + $and) 创建渐进式过滤器
- html - 使用 CSS 编辑单个图像。带有类的 Img Src 仍在更改网站上的所有图像
- sql - 为什么常量的类型转换会破坏查询性能
- python - 带有日期时间的 Matplotlib 绘图
- php - axios api调用不适用于vue路由器路由路径laravel项目
- visual-studio-code - 我可以同时将 VS Code 用于两个不同的项目吗?
- python - 如果我调试或运行它,为什么会有两个不同的结果?
- python - Django Defect-dojo:aws-prowler 上传失败
- android - java.lang.RuntimeException: android.view.InflateException