    #include <iostream>
    struct I {
        int i;
        I(){i=2;}
        I(int _i){i=_i;}
    };
    int a[3] = {a[2] = 1};
    int aa[3][3] = {aa[2][2] = 1};
    I A[3] = {A[2].i = 1};
    I AA[3][3] = {AA[2][2].i = 1};
    int main(int argc, char **argv) {
        for (int b : a) std::cout << b << ' ';
        std::cout << '\n';
        for (auto &bb : aa) for (auto &b : bb) std::cout << b << ' ';
        std::cout << '\n';
        for (auto &B : A) std::cout << B.i << ' ';
        std::cout << '\n';
        for (auto &BB : AA) for (auto &B : BB) std::cout << B.i << ' ';
        std::cout << '\n';
        return 0;
    }