我正在尝试打印2d数组int arr[n][n]
,这是我尝试的内容:
for(int (*x)[n]:arr){
for(int k:x){
cout<<x<<" ";
}
cout<<endl;
}
我收到以下错误:[错误]无法在初始化时将'int *'转换为'int(*)[3]'。
这是在循环中不使用auto
的答案。
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;
}
int (*x)[n]
是数组指针。您不能将数组分配给数组指针。只需将其更改为数组引用即可:for(int (&x)[n] : arr) {
for(int k : x) {
std::cout << k << " ";
}
std::cout << "\n";
}
我也在第三行中修正了错字。