C++ Primer(第5版)练习3.43,不使用类型别名、auto关键字或decltype关键字
#include <iostream>
using namespace std;
int main()
{
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
// 范围for语句
for (const int (&row) [4] : ia) {
for (int col : row)
cout << col << " ";
cout << endl;
}
cout << endl;
// 下标运算符
for (size_t i = 0; i < 3; i++) {
for (size_t j = 0; j < 4; j++)
cout << ia[i][j] << " ";
cout << endl;
}
cout << endl;
// 指针
for (int (*p) [4] = ia; p != ia + 3; p++) {
for (int *q = *p; q != *p + 4; q++)
cout << *q << " ";
cout << endl;
}
cout << endl;
getchar();
return 0;
}
C++ Primer(第5版)练习3.44,使用类型别名来代替循环控制变量的类型
#include <iostream>
using namespace std;
int main()
{
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
// using int_array = int[4]; // 新标准下类型别名的声明
typedef int int_array[4]; // 等价的typedef声明
// 范围for语句
for (const int_array &row : ia) {
for (int col : row)
cout << col << " ";
cout << endl;
}
cout << endl;
// 下标运算符
for (size_t i = 0; i < 3; i++) {
for (size_t j = 0; j < 4; j++)
cout << ia[i][j] << " ";
cout << endl;
}
cout << endl;
// 指针
for (int_array *p = ia; p != ia + 3; p++) {
for (int *q = *p; q != *p + 4; q++)
cout << *q << " ";
cout << endl;
}
getchar();
return 0;
}
C++ Primer(第5版)练习3.45,使用auto关键字
#include <iostream>
using namespace std;
int main()
{
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
// 范围for语句
for (const auto &row : ia) {
for (auto col : row)
cout << col << " ";
cout << endl;
}
cout << endl;
// 下标运算符
for (size_t i = 0; i < 3; i++) {
for (size_t j = 0; j < 4; j++)
cout << ia[i][j] << " ";
cout << endl;
}
cout << endl;
// 指针
for (auto p = ia; p != ia + 3; p++) {
for (auto q = *p; q != *p + 4; q++)
cout << *q << " ";
cout << endl;
}
getchar();
return 0;
}