C++ 为什么程序没有以正确的方式执行?

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

程序未按其应执行的方式执行。当我输入元素时,需要超过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; 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]——这对于您的循环来说是正确的

在处理数组时,不要使用指针算术,这只会让人困惑。

程序没有按它应该执行的方式执行-是的-程序正按照您编写的方式执行。请告诉我代码中是否有任何错误-您告诉我,它有什么错误吗?你期望它做什么?它会做什么?