如果我定義了一個像static double a[100];
這樣的數組,那麼我可以像索引a[1][1]
那樣索引它嗎?我認爲,如果我想要一個二維數組,我需要定義它像static double a[100][100];
定義和索引到一個二維數組中 - C
1
A
回答
2
-1
你不能只是簡單地做一個一個維數組爲二維數組。但是,您可以創建一個像int a[100][100]
這樣的數組,並通過提供它們的位置來訪問數組中的值,例如int b = a[x][y]
,其中x和y是從0到99的一些數字。
+2
_some數字從0到100_這是不正確的。 *** 100 ***會超出界限 – ryyker 2015-02-05 18:15:50
2
不是直接,因爲類型不匹配。所述a[1][1]
等價於:
(*(*(a+1)+1)
作爲你的陣列被定義爲static double a[100];
,第二(外)解除引用僅僅是無效。
不過我相信你的可以創建一個指針,即模擬二維數組之內。這是證明了概念,以得到一個想法:
#include <stdio.h>
int main(void)
{
static double a[100];
for (int i = 0; i < 100; i++)
a[i] = i;
double (*p_a)[10] = (double(*)[10]) a;
printf("%f\n", a[55]);
printf("%f\n", p_a[5][5]); // evaluated as 5 * 10 + 5
return 0;
}
我不知道這完全由C標準認可的,你一定要小心不要出門界外。儘管如此,將100
元素一維數組看作是同構與10x10
相同類型的二維數組似乎是合理的。基本上都保證有相同的內存佈局。這是由於二維陣列連續排列(即第一行,第二行,...,最後一行)的事實。
相關問題
- 1. 將一維數組索引轉換爲二維數組索引
- 2. 馬平二維數組與索引的一個維數組
- 3. 索引NumPy的二維數組與另一二維數組
- 4. C#二維數組索引交換
- 5. Python索引二維數組
- 6. 在numpy中用3d數組索引一個二維數組
- 7. 將二維數組索引轉換爲一維索引
- 8. 將一維數組的索引轉換爲二維數組
- 9. IndexError索引的二維數組與一維數組(NumPy的)
- 10. python中的二維數組索引值
- 11. 多維數組未定義索引
- 12. 二維數組定義
- 13. 將一維數組複製到二維數組中C
- 14. 添加colums形成一個二維數組到另一個二維數組
- 15. 在java中乘以一個數組和一個二維數組
- 16. 一維數組中的多個索引
- 17. 引用一維二維數組
- 18. 轉換兩個一維數組到一個二維數組
- 19. 二維數組angularjs到C#
- 20. C:傳遞一個二維數組到一個函數
- 21. 索引一個索引數組的多維numpy數組
- 22. 二維索引 - 數組超出範圍
- 23. 1索引與二維數組錯誤
- 24. 改變二維數組的索引
- 25. numpy的 - 二維數組索引
- 26. 在C中分配二維數組中的一維數組#
- 27. C - 按一維排序二維數組
- 28. 一維數組到二維數組在java中
- 29. C++二維數組
- 30. 如何從二維數組中找到索引
爲什麼要允許?你爲什麼不嘗試一下呢? – mafso 2015-02-05 17:45:25