#include <iostream>
void main(){
//练习3.43
int ai[3][4] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
//版本1:范围for
for (int (&i)[4] : ai){ //把i绑定到ai的第一个4元素数组上
for (int j : i){
std::cout << j << " ";
}
}
//版本2:下标运算符
std::cout << std::endl;
for (size_t i = 0; i < 3; ++i){
for (size_t j = 0; j < 4; j++){
std::cout << ai[i][j] << " ";
}
}
//版本3:指针
std::cout << std::endl;
int (*p)[4] = ai; //指针指向含有4个整数的数组
for (; p< ai + 3; p++){
for (int *q = *p; q < std::end(*p); q++){ //指向4个整数的数组的首元素
std::cout << *q << " ";
}
}
//练习3.45:使用auto关键字
std::cout << std::endl;
for (auto &i : ai){ //除了最最内层,其他寻循环的控制变量都应是引用类型
for (auto j : i){
std::cout << j << " ";
}
}
std::cout << std::endl;
system("pause");
}