C#中,多维数组和数组的数组有什么区别
首先定义不同
多维数组:private int[,] _multi ;
数组的数组(也即锯齿数组)private int [][] _jagged;
再次实例化不同
多维:_multi=new int [10,10];
锯齿数组:_jagged=new int[2][];
_jagged[0]=new int[5];
-jagged[1]=new int[9];
第3访问遍历方式不同:
多维:
foreach(int e in _multi)
{
Console.Write(e.ToString());
}
锯齿数组:
foreach(int[] row in _multi)
{
foreach(int[] e in row)
{
Console.Write(e.ToString());
}
}
第4可定义维度不同
多维的每个维度固定,锯齿数组每个维度不固定,因此得名锯齿数组。
最后性能的差异:
多维:维度长度固定,利用这个特性,编译器可以生产更加高效的初始代码,
锯齿:数组越大维数越多,初始化的代码越多,列方向遍历的效率低
声明:本人所有资源均参考Effective C#条款40,转载答案请明确指资料来源。
从定义上来看,线性表和数组都是数据元素的有序集
1、数组有维度(比如三维数组)的概念而线性表没有
2、数组和线性表上可进行的操作不一样。一般我们不在数组上进行数据插入和删除的操作,同样,我们也无法直接通过数据序列来访问线性表中的数据单元(比如表中第i个元素)。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!