int map[19][19];
map[19][19]={0};
不可以这样写,因为在C++中,数组的索引是从0开始的,所以索引的最大值是 n-1
,而不是 n
。在你提供的代码中,map[19][19]
是无效的索引,因为它越界了。
正确的方式是使用循环来逐个初始化数组的元素,就像我之前提供的示例代码一样。这里再次展示一遍正确的示例代码:
#include <iostream>
int main() {
int map[19][19];
// 将数组元素全部初始化为0
for (int i = 0; i < 19; ++i) {
for (int j = 0; j < 19; ++j) {
map[i][j] = 0;
}
}
// 打印数组元素,验证是否全部初始化为0
for (int i = 0; i < 19; ++i) {
for (int j = 0; j < 19; ++j) {
std::cout << map[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
这段代码会遍历数组的每个元素,将它们逐个初始化为0,然后打印出来以验证初始化是否成功。
int map[19][19]={0};
这段代码可以将整个二维数组 map
中的所有元素都初始化为0。
在C++11标准中,您可以使用列表初始化语法来初始化数组,包括多维数组。