使用基于循环的范围打印多维数组

问题描述 投票:0回答:1

我正在尝试打印2d数组int arr[n][n],这是我尝试的内容:

for(int (*x)[n]:arr){
    for(int k:x){
        cout<<x<<" ";
    }
    cout<<endl;
}

我收到以下错误:[错误]无法在初始化时将'int *'转换为'int(*)[3]'。

这是在循环中不使用auto的答案。

c++ multidimensional-array
1个回答
0
投票
喜欢这个

int main() { int arr[3][3] = {1,2,3,4,5,6,7,8,9}; for (int (&x)[3] : arr) { for (int k : x) { cout << k << " "; } } cout << endl; }


0
投票
int (*x)[n]是数组指针。您不能将数组分配给数组指针。只需将其更改为数组引用即可:

for(int (&x)[n] : arr) { for(int k : x) { std::cout << k << " "; } std::cout << "\n"; }

我也在第三行中修正了错字。
© www.soinside.com 2019 - 2024. All rights reserved.