1. 程式人生 > >C#中二維陣列int[,]與交叉陣列int[][]的區別

C#中二維陣列int[,]與交叉陣列int[][]的區別

首先說一下交叉陣列這個東西是C#裡面的,c++裡面是沒有的交叉陣列這個定義的

 

int[][] 是陣列的陣列,即一個一維陣列的每個元素都是一個數組,這個在C++,java等語言裡面也是這麼定義的;

int[,]這個是C#中提供的一個二維陣列的形式,在C++中並不存在

看兩者定義時的不同:

int[,] a = new int[2, 3] { { 1, 2, 3 }, { 11, 22, 33 } };

 

int[][] b = new int[2][];//一維陣列

b[0] = new int[3] { 1, 2, 3 };//對一維陣列中的每個元素定義一維陣列

b[1] = new int[4] { 4, 5, 6, 7 };

 

從程式碼可以看出來主要有兩點不同

1、定義不同,二維陣列直接定義,交叉陣列是需要再定義每個陣列的(這個好像有點廢話);

2、二維陣列是個規則的“矩形”,即每行元素個數都是一樣的;交叉陣列是沒有這個限制的,可以一樣也可以不一樣(這裡說一下,C++中定義int[][]時實際就相當於定義的二維陣列,而要是想實現交叉陣列應該使用指向陣列的指標)