如果我定義了一個像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. 搜索一個二維數組C++
- 3. 馬平二維數組與索引的一個維數組
- 4. 索引NumPy的二維數組與另一二維數組
- 5. c中的二維到一維數組
- 6. C++二維數組索引錯誤
- 7. C#二維數組索引交換
- 8. Python索引二維數組
- 9. 在numpy中用3d數組索引一個二維數組
- 10. 將某個二維數組索引下的數據移動到一維數組
- 11. 將二維數組索引轉換爲一維索引
- 12. 從二維數組獲取一維數組索引
- 13. IndexError索引的二維數組與一維數組(NumPy的)
- 14. 將一維數組的索引轉換爲二維數組
- 15. 在二維數組中找到唯一的相鄰索引
- 16. 索引二維數組由索引的二維數組沒有循環
- 17. 二維數組填充隨機數和輸出索引C++
- 18. java中二維數組的索引
- 19. matlab中二維數組的索引
- 20. python中的二維數組索引值
- 21. 多維數組未定義索引
- 22. 將一維數組複製到二維數組中C
- 23. 二維數組定義
- 24. 添加colums形成一個二維數組到另一個二維數組
- 25. 在java中乘以一個數組和一個二維數組
- 26. 一維數組中的多個索引
- 27. 將一維數組的索引轉換爲二維數組i。即行和列
- 28. 引用一維二維數組
- 29. 二維數組返回索引
- 30. 一維數組和二維數組
爲什麼要允許?你爲什麼不嘗試一下呢? – mafso 2015-02-05 17:45:25