3.6 多维数组(3)
类型别名简化多维数组的指针
读、写和理解一个指向多维数组的指针是一个让人不胜其烦的工作,使用类型别名(参见2.5.1节,第67页)能让这项工作变得简单一点儿,例如:
- using intint_array = int[4]; // 新标准下类型别名的声明,参见2.5.1节(第68页)
- typedef int int_array[4]; // 等价的typedef 声明,参见2.5.1节(第67页)
-
- // 输出ia中每个元素的值,每个内层数组各占一行
- for (int_array *p = ia; p != ia + 3; ++p) {
- for (int *q = *p; q != *p + 4; ++q)
- cout << *q << ’ ’;
- cout << endl;
- }
程序将类型"4个整数组成的数组"命名为int_array,用类型名int_array定义外层循环的控制变量让程序显得简洁明了。
3.6节练习
练习3.43:编写3个不同版本的程序,令其均能输出ia的元素。版本1使用范围for语句管理迭代过程;版本2和版本3都使用普通的for语句,其中版本2要求用下标运算符,版本3要求用指针。此外,在所有3个版本的程序中都要直接写出数据类型,而不能使用类型别名、auto关键字或decltype关键字。
练习3.44:改写上一个练习中的程序,使用类型别名来代替循环控制变量的类型。
练习3.45:再一次改写程序,这次使用auto关键字。