首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于交错数组跟二维数组

2013-09-23 
关于交错数组和二维数组想请教各位一下,每个数组的元素个数相同的交错数组和二维数组一样吗?[解决办法]引

关于交错数组和二维数组
想请教各位一下,每个数组的元素个数相同的交错数组和二维数组一样吗?
[解决办法]

引用:
Quote: 引用:

当然不一样,因为交错数组的第一层,保存的是数组对象的引用
正因为这样,你才可以将一个长度不同的数组传给交错数组,同时不用搬动其它元素。

而二维数组的本质和一维数组一样,连续存储,可以直接寻址。

看这个:
int[][] arr1 = new int[][] { new int[] { 1, 2 }, new int[] { 3, 4 }, new int[] { 5, 6 } };
int[,] arr2 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
arr1[1] = new int[] { 1, 2, 3, 4 };

还是不明白啊,用c语言二维数组写的程序能不作改变地在C#里用交错数组完成吗?

不建议使用交错数组,在二进制兼容性上,交错数组和二维数组不兼容,在性能上,交错数组无法直接对第二维下标的数据直接寻址,在用法上,交错数组允许不同长度的二维数组混编,且无法一次性初始化,编译器无法检查你的不正确用法。
[解决办法]
交错数据没有二维的概念,它就是普通的数组向量,只不过每一个数组单元是另一个数组而已。

许多语言没有二维数组,例如标准c语言,c语言的“二维数组”其实就是交错数组,而不是c#所说的二维数组。

热点排行