这是一个非常简单的问题,但我找不到有效的答案。
取以下2D阵列:int grid[4][4]
。我可以用整数填充它,这样在视觉上,它可以看起来像:
1,0,0,5,0
0,0,0,6,7
3,0,0,0,7
2,0,0,0,9
4,0,0,2,0
(每段一新行(
现在,如果我只想将一行的数据作为标准数组给出,该怎么办?我想这样做的方式是:grid[0]
,它会给我1,0,0,5,0。
然而,这似乎并不奏效。有人能告诉我如何提取数据行吗?以下是的代码示例
int grid[4][4];
//Add in some numbers, e.g.
grid[0][3] = 5;
//Get the first row
int* row1 = grid[0]; //I'm not sure about this
例如,本例应将"row1"设置为"0,0,0,5,0">
我觉得我在这里做错了什么。。。
没有错误消息,但它只是给"row1"一个随机的整数字符串,这肯定是不正确的。
记住,在声明为int grid[4][4]
的数组中,只能存储四批四个元素(总共十六个(。
您的数组{ 1,0,0,5,0 }, { 0,0,0,6,7 }, { 3,0,0,0,7 }, { 2,0,0,0,9 }, { 4,0,0,2,0 }
实际上是一个int [5][5]
。
你所做的并不是错误的;CCD_ 11将是指向CCD_ 12的第一项的指针。如果你想打印每个元素,那是一个好的开始。。。
在一个清晰的时刻,当我提到"循环"这个词时,你可能会意识到。。。然后,您需要一个"循环"来循环遍历行中的每个元素!
int *row = grid[0];
for (size_t x = 0; x < sizeof grid[0] / sizeof grid[0][0]; x++) {
printf("%d, ", row[x]);
}
putchar('n');