我读过 C++ 书,那个 “尽管 C++ 使我们能够对多维数组进行建模,但包含数组的内存是一维的。因此编译器将多维数组映射到内存空间,这只会向一个方向扩展。”
我想,如果我想将 n 维数组更改为一维数组(按升序排列),为什么我只调用 n 维数组内存地址(以一维格式存储)并放入新的一维数组??
(一般我用for语句把n维数组改成1维数组)
这可能吗?如果可能的话,提供简单的示例代码将不胜感激。
最佳答案
指向数组中第一项的指针也是指向被视为一维数组的完整数组的指针。项目在内存中连续存储的保证来自 sizeof
要求,n 项目的数组大小是 n 倍项目的大小,当项目本身是一个数组时也是如此。
关于C++通过内存地址将多维数组更改为一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49828775/