多維陣列與交錯陣列

2021-08-11 15:21:24 字數 1184 閱讀 8305

建立乙個一維陣列:int a = new int[10];

建立乙個二維陣列:int[,] a = new int[2,3]; //兩行三列的陣列

我們知道一維陣列在記憶體中是佔據乙個線性的空間。而且陣列有乙個特點,也可以說是缺點,那就是陣列一旦分配之後,長度就是確定的。

對於二維陣列來說亦同,二維陣列在記憶體中佔據的,其實也是乙個線性的空間。因為二維陣列跟一維陣列一樣,長度一開就是固定的。

其實這樣說也不嚴謹,陣列被宣告的時候,陣列名就是「棧」裡的乙個小變數,指向null。一旦我們確定陣列大小的時候,記憶體就會分配一小塊線性的空間,然後指標指向該位址。

一位陣列和二維陣列在記憶體中是這樣分布的。

不管是幾維的陣列,它們在乙個維度上的長度都是相同的。

例如二維陣列,int a = new int[2,3]

這就是兩行三列,a[0]、a[1]、a[2]它們的長度都是相同的,但是交錯陣列並不是這樣。

交錯陣列看起來更像是「齒輪陣列」,也有人說是陣列的陣列,看圖···

看起來像不像齒輪?

交錯陣列的建立方式:

int a = new int[4];   //1

a[0] = new int[6]; //2

a[1] = new int[2];

a[2] = new int[3];

a[3] = new int[5];

執行完第一句的時候,a這個陣列就會有四個指標,都指向null。一旦我們執行第二部,a[0]這個指標就會指向一塊分配好的記憶體空間(長度是6*sizeof(int))。

交錯陣列還可以這樣建立:

int jaggedarray = new int 

, new int ,

new int ,

new int

};

2017/12/1 21:07:10 @author:雲都小

C 中的陣列,多維陣列和交錯陣列

想研究一些物件導向的東西,也許是 寫得還不夠多。感覺還不好,看那些教程,不是嫌太水就是太難看不懂。心情很是落寞 不過再怎樣也要堅持每天發一篇部落格。這篇來說一下c 中的陣列,多維陣列,交錯陣列的一些東西。有那麼一點點研究茴香豆的茴有四種寫法的感覺。先講三點顯而易見卻又值得一提的東西 第一點陣列是一種...

交錯陣列(jagged array)

交錯陣列,又稱陣列的陣列。它是乙個陣列,裡面存放的元素是陣列。宣告 int jaggedarray new int 3 表示jaggedarray包含3個元素,元素為一位陣列。初始化 必須為jaggedarray的每乙個元素賦值。第一種方法 jaggedarray 0 new int 3 jagge...

多維陣列與指標

今天在寫遍歷二維陣列的時候,突然思考這個問題,原因在於作內層迴圈時,對指標和陣列理解不到位。雖然一直都會也寫遍歷二維陣列,但是原先從沒有想過這個問題。逃 標頭檔案 ifndef treble h define treble h includetypedef int int array 3 void ...