建立乙個一維陣列: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 ...