3.6节练习
使用三种不同的for循环打印多维数组中元素。
#include <iostream>
constexpr size_t rowCnt = 3, colCnt = 4;
using namespace std;
int main()
{
//使用范围for语句给二维数组赋值
int ia[rowCnt][colCnt];
size_t cnt = 0;
for (auto &row : ia)
for (auto &col : row){
col = cnt; // 每个数组元素的值,按照下标赋值
cnt++;
}
//所有版本不使用auto, decltype推断类型
//版本1,使用范围for语句打印元素
for (const int (&i)[4] : ia)
for (int j : i)
cout << j << " ";
cout << endl;
//版本2,使用普通for语句打印元素,下标运算符
for (int i = 0; i != rowCnt; i++)
for (int j = 0; j != colCnt; j++)
cout << ia[i][j] << " ";
cout << endl;
//版本3,使用普通for语句打印元素,指针版本
for (int (*p)[4] = ia; p != ia + 3; p++ ){
for (int *q = *p; q != *p + 4; q++){
cout << *q << " ";
}
}
return 0;
}