C++ 为什么程序没有以正确的方式执行?
程序未按其应执行的方式执行。当我输入元素时,需要超过12个元素,这是不应该发生的。请告诉我代码中是否有错误。我试图分别输出三个二维数组C++ 为什么程序没有以正确的方式执行?,c++,pointers,multidimensional-array,C++,Pointers,Multidimensional Array,程序未按其应执行的方式执行。当我输入元素时,需要超过12个元素,这是不应该发生的。请告诉我代码中是否有错误。我试图分别输出三个二维数组 #include <iostream> using namespace std; int main() { int i, j, k; int abc[2][2][3]; // three 2D arrays declared . for (k = 0; k <= 2; k++) { for (i = 0
#include <iostream>
using namespace std;
int main()
{
int i, j, k;
int abc[2][2][3]; // three 2D arrays declared .
for (k = 0; k <= 2; k++) {
for (i = 0; i <= 1; i++) {
for (j = 0; j <= 1; j++) {
cin >> *(*(*(abc + k) + i) + j); // entering the element abc[i][j][k].
}
}
}
// REQUIRED 3D ARRAY .
for (k = 0; k <= 2; k++) {
for (i = 0; i <= 1; i++) {
for (j = 0; j <= 1; j++) {
cout << *(*(*(abc + k) + i) + j) << " ";
} // respective 2d arrays are printed .
cout << endl;
}
cout << endl;
}
}
***abc+k+i+j是abc[k][i][j]
您正在数组外建立索引,而数组未定义您很可能正在覆盖索引变量
一个由3个2x2数组组成的数组应该是abc[3][2][2]——这对于您的循环来说是正确的
在处理数组时,不要使用指针算术,这只会让人困惑。程序没有按它应该执行的方式执行-是的-程序正按照您编写的方式执行。请告诉我代码中是否有任何错误-您告诉我,它有什么错误吗?你期望它做什么?它会做什么?