Jam*_*rth 2 c arrays multidimensional-array
这是一个非常简单的问题,但我找不到有效的答案.
采取以下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
Run Code Online (Sandbox Code Playgroud)
例如,此示例应将"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].
你在做什么并没有错; row1将是指向第一项的指针grid[0].如果你想打印每个元素,这是一个好的开始......
在一个清晰的时刻,当我提到"循环"这个词时,你可能会意识到......然后你需要一个"循环"来遍历行的每个元素!
int *row = grid[0];
for (size_t x = 0; x < sizeof grid[0] / sizeof grid[0][0]; x++) {
printf("%d, ", row[x]);
}
putchar('\n');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |