c/c++における3 D配列の伝達

889 ワード

#include 
#include 
using namespace std;
const int x = 10;
const int y = 10;
const int z = 10;
int bar(double arr[][y][z]);
int main() {
    double foo[x][y][z];
    for (int i = 0; i < x; i++) {
        for (int j = 0; j < y; j++) {
            for (int k = 0; k < z; k++) {
                foo[i][j][k] = 1.0;
            }
        }
    }
    cout << foo[0][0][0] << endl; // 1.0
    bar(foo);
    system("pause");
    return 0;
}
int bar(double arr[][y][z]) {
    cout << "function invoked value: " << arr[1][1][1] << endl;
    return 0;
}

出力結果は
1
function invoked value1

なお、3 D配列をパラメータとして渡す場合、配列の最初の[]は空であり、2番目の3番目の配列は空ではありません.
これにより,ほとんどの場合の3次元配列に対して容易に処理できる.
この文書はhttps://www.cnblogs.com/zhuzhenwei918/p/8849644.html