int myarray[7][7]
不会在 C++ 中创建一个包含 0-7 行和列的 8x8 位置的框吗?
当我运行时:
int board[7][7] = {0};
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
cout << board[i][j] << " ";
}
cout << endl;
}
我得到输出:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 146858616 1 0 0 146858832 1 1978920048
因此 8 列似乎有效,但 8 行无效。
如果我将它更改为 int board[8][7] = {0};
它可以在 mac CodeRunner IDE 上运行,但在 linux Codeblocks 上我得到:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 1503452472
不确定这里发生了什么。
最佳答案
二维数组在这方面与一维数组没有区别:正如
int a[7];
可以从0到6进行索引,
int a2[7][7];
可以在两个维度上从0到6进行索引,索引7越界。特别是:a2
有 7 列和行,而不是 8。
关于c++ - 二维数组的行和列是否从0开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084163/