2011-02-15 63 views

回答

3

這是根據您考慮過的數組的數據類型完成的。

對於整數數組來說,每個值都包含4個字節,因此一個X行的長度將佔用4X個字節。

因此,X * Y的2-D矩陣將是4 * X * Y字節。

任何地址說阿利[X] [Y]將是 計算爲:(阿利的基地址) +(列的X *號)+(Y //當前行中偏移)

0

嵌套數組是一個數組數組。例如,int[][6]int[6]的數組。
假設一個4字節的int,外部數組中的每個元素是6 * 4 = 24個字節寬。

因此,arr[4]獲得外部陣列中的第三個陣列或*(arr + 4 * 24)

arr[4]是正常int[]arr[4][2]在這個內部陣列中獲得第二個int,或者*(arr + 4 * 24 + 2 * 4)

1

C中的二維數組是矩形的。例如:

int matrix[2][3]; 

分配存儲器的大小2*3*sizeof(int)字節的單個塊。尋址matrix[0][1]只是將0 * (3 * sizeof(int))添加到sizeof(int)。然後將該總和添加到matrix開始的地址。

+0

謝謝邁克爾 – Lagnesh

0

例如

char anArray[][13]={"Hello World!","February","John"}; 

你可以想像它作爲:

anArray

H|e|l|l|o| |W|o|r|l|d|!|\0|F|e|b|r|u|a|r|y|\0|\0|\0|\0|\0|J|o|h|n|\0|\0|\0|0|\0 
^      ^       ^
0       13        26 
+0

實際上,對於你不給初始化所有字符都保證被初始化爲\ 0 。所以你應該用'\ 0'替換你所有的'+'。 –