在 c++ 二维数组的定义和使用中,我产生了题目中的这个疑问
以下为我遇到问题时的代码片段:
long tar_x, tar_y, hor_x, hor_y;
cin >> tar_x >> tar_y >> hor_x >> hor_y;
long long arr[tar_x ][tar_y] = {0};
cout << arr[tar_x ][tar_y] << endl;
传入的数据是:6 6 3 3
(下同
此时输出为:6
预期为 0
(下同
当将数组定义更改为:
long long arr[tar_x + 1][tar_y] = {0};
输出为:140721828521648
当将数组定义更改为:
long long arr[tar_x ][tar_y + 1] = {0};
输出为:6
当将数组定义更改为:
long long arr[tar_x + 1 ][tar_y + 1] = {0};
输出为:0
(此时非最后一个位置
在经过互联网查询之后未能找到相应的解释,希望各位不吝赐教