C#二维数组及其本质(转)
C#中二维数组包含两类:二维数组和数据矩阵。(这是我个人分类法,我认为比较能反映本质)。
如上图,是二维数组,横向为第一维度,纵向为第二维度,不同维度可以有不同长度。如果去掉元素7,那么上图也可能是数据矩阵(看上去就是第一维度具有相同长度的二维数组)。 二者本质有什么区别呢?二维数组的本质就是二维数组,如上图二维数组的声明方法:int[][] arr= new int[2][];arr[0]=new int[3];arr[1]=new int[4];遍历方法可以用for,也可以用foreach,如:foreach(int[] i in arr)//由此也可以看出,二维数组的每个第一维都是一个单独的数组 foreach(int j in i) Console.Write(j);数据矩阵的本质还是一维数组,上图中去掉元素7后的数据矩阵声明方法为:int[,] arr=new int[2,3]{{1,2,3},{4,5,6}};遍历方法可以用for,也可以用foreach,如:foreach(int i in arr)//由此也可以看出,数据矩阵本身还是一位数组,其内存存储方式为线性 Console.Write(i);
![](http://images0.cnblogs.com/blog/66466/201311/04103615-e08db5439d5144cfa916aec1e5977428.jpg)