"真正的"多维数组的定义是什么,哪些语言支持它们?

Jes*_*ood 8 language-agnostic language-theory jagged-arrays multidimensional-array

我读过的大多数编程书都有以下几行:

"X语言不支持真正的多维数组,但你可以用数组数组模拟(近似)它们."

由于我的大部分经验都是基于C语言,即C++,Java,JavaScript,php等,我不确定"真正的"多维数组是什么.

真正的多维数组的定义是什么以及支持它的语言是什么?另外,如果可能的话,请在代码中显示一个真正的多维数组的示例.

Dyl*_*ith 7

C#支持真正的多维数组,以及可以替代的"锯齿状"数组(数组数组).

// jagged array
string[][] jagged = new string[12][7];

// multidimensional array
string[,] multi = new string[12,7];
Run Code Online (Sandbox Code Playgroud)

通常认为锯齿状阵列更好,因为它们可以完成多维阵列可以做的所有事情.在锯齿状数组中,您可以使每个子数组具有不同的大小,而在多维数组中则不能这样做.甚至还有一个代码分析规则(http://msdn.microsoft.com/en-us/library/ms182277.aspx)

  • 感谢你的回答。我现在明白什么是真正的多维数组了。但是,请记住,在 C 和 C++ 中,即使子数组使用数组的数组,子数组的大小也不能不同。另外,C# 是唯一支持它们的语言吗? (2认同)