如何在C中的數組中生成地址,說一個[x] [y]如何得到一個特定的值,我知道它不是一個大問題,而是關於實際上開始編碼。C中的二維數組,地址生成
6
A
回答
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
例如
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'替換你所有的'+'。 –
相關問題
- 1. 生成二維數組值
- 2. 地址上的二維浮點數組
- 3. C中的二維數組如何變成一維數組?
- 4. 二維地形生成
- 5. 動態生成的二維數組
- 6. 生成二維數組的梯度圖
- 7. C#二維數組中的隨機字母生成器 - 問題
- 8. C++中的二維數組
- 9. c中的二維數組#
- 10. C++中的二維數組
- 11. 通過LINQ生成二維數組
- 12. 使用Javascript生成二維數組
- 13. 如何將二維數組的指針指向C/C++中的內存地址
- 14. c中的二維到一維數組
- 15. C - 二維數組
- 16. C++二維數組
- 17. 在C中的二維數組中,爲什麼二維數組的第一個元素的基地址和第一行的基地址是相同的?
- 18. C++:二維數組作爲類成員
- 19. 我可以從二維數組中檢索一維數組地址嗎?
- 20. 逼真的二維地形圖生成
- 21. 將二維數組切片成較小的二維數組
- 22. C/Objective-C中的二維數組
- 23. Objective-C中的二維數組Objective-C
- 24. 通過輸入地址找到二維數組中的值
- 25. 在C中分配二維數組中的一維數組#
- 26. 多維數組和地址
- 27. 隨機化一個整數的二維數組地址
- 28. 如何二維數組轉換成一維數組中的PHP5
- 29. iphone:本地二維碼生成器
- 30. 二維數組C#的數組?
謝謝邁克爾 – Lagnesh