【发布时间】:2020-10-09 02:10:03
【问题描述】:
我正在创建一个二维数组。但是,当我使用双 for 循环检查二维数组的内容时,它会填充随机数。我知道我可以使用双 for 循环手动用 0 填充我的双数组。但是,我很困惑为什么它在初始化时不这样做。
int arr[5][5];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
输出:
0 0 0 0 0
0 0 0 -272632592 32766
-272632616 32766 0 1 0
0 0 0 0 0
0 0 0 0 -272632608
Program ended with exit code: 0
【问题讨论】:
-
您的“双循环”正在打印数组的元素,而不是初始化它们。
ints 的数组具有自动存储持续时间,因此未初始化。访问未初始化变量的值(或者,在您的情况下,未初始化的数组元素)会导致未定义的行为。
标签: c++ arrays vector initialization int