如果我定义了一个像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