[,] 2d 数组和 [][] 数组之间是否有任何功能差异

本文关键字:数组 任何 功能 之间 2d 是否 | 更新日期: 2023-09-27 17:56:04

这两个数组可以相互通信还是它们需要是相同的类型,即 [,] 只能与其他 [,] 数组通信。

或者如果我有:

char [,] 2darray =new char [2,2];

它可以将其值传递给具有 2d 数组的方法,例如:

Shirts(char [][] sizes)

例如,这是伪代码,只有我真的只对知道这种类型的数组调用的差异(如果有)以及它们是否可以相互通信感兴趣。

[,] 2d 数组和 [][] 数组之间是否有任何功能差异

这两种类型是不同的。它们在内存中具有不同的表示形式,因此它们不可互换。

2D 数组char m[,]需要具有相同大小的行,并且所有行都必须存在。相反,数组数组char m[][]允许具有可变长度的行,甚至一些缺失的行。

数组数组

的元素是一个数组,您可以将其作为单独的实体传递。二维阵列是一个单元;其索引器运算符需要为每个维度提供一个索引。换句话说,你可以这样做

char m[][] ...
char r[] = m[2]; // Allowed

但你不能这样做

char m[,] ...
char r[] = m[2]; // Does not compile