这两个阵列可以相互通信,还是需要相同类型,即[,]只能与其他[,]数组通信。
或者如果我有:
char [,] 2darray =new char [2,2];
是否可以将其值传递给具有2d数组的方法,如:
Shirts(char [][] sizes)
这是伪代码,例如我只是真的只是想知道这种类型的数组调用的差异是否存在,以及它们是否可以相互通信。
答案 0 :(得分:4)
这两种类型不同。它们在记忆中有不同的表现形式,因此它们不可互换。
要求2D数组char m[,]
具有相同大小的行,并且所有行都必须存在。相反,数组char m[][]
的数组允许有可变长度的行,甚至是一些缺少的行。
数组数组的元素是一个数组,您可以将其作为单独的实体传递。 2D阵列是一个单元;它的索引器运算符需要每个维度的索引。换句话说,你可以这样做
char m[][] ...
char r[] = m[2]; // Allowed
但你不能这样做
char m[,] ...
char r[] = m[2]; // Does not compile