c#中[,]和[][]的区别

本文关键字:区别 | 更新日期: 2023-09-27 18:15:38

我目前正在尝试学习c#,我遇到了以下问题:

c#中类型[,][][]的区别是什么?

c#中[,]和[][]的区别

[,] form创建矩形二维数组。当你指定维度时,你将得到这些尺寸的二维矩阵。它的所有元素都初始化为元素类型的默认值。

int[,] array = new int[4, 2];

内存方面,数组作为单个块存储在内存中(大小为width*height)。访问元素稍微慢一些,运行时执行的操作也更昂贵——参见http://blog.mischel.com/2013/05/08/are-jagged-arrays-faster-than-rectangular-arrays/

[][]被称为锯齿数组,它基本上是数组的数组。创建它时,首先只指定第一个维度的大小:

int[][] jaggedArray = new int[3][];

现在您必须手动为每一行创建一个new数组(它们最初是null)

jaggedArray[0] = new int[10];
jaggedArray[1] = new int[6];

这样做的好处是每行可以有不同的长度。

在内存中,每一行都存储在不同的位置,但是访问特定的元素最终会更快,因为它只需要运行时在基数组中找到指向行数组的指针,然后像在普通数组中一样找到所请求的元素。