摘要
函数不能返回数组,但是可以返回数组指针或引用,也可以通过返回指针来实现。
使用类型别名的好处是:你可以用这个类型别名定义变量,变量的元素个数与你返回的数组元素个数相等,访问时可以避免越界问题。
一句话笔记
//数组指针的定义
int arr[10]; // arr是一个含有10个int类型的数组
int *p1[10]; // p1是一个含有10个int指针类型的数组
int (*p2)[10] = &arr; // p2是一个指针,指向一个含有10个int类型的数组
//数组的类型别名
typedef int arrT[10]; // arrT是类型别名,它表示的类型是含有10个int类型的数组
using arrT = int[10]; // 与上面等价
//使用数组类型别名来声明函数的返回值
arrT *func(int i); // func返回一个指向含有10个整数的数组的指针
int (*func(int i))[10]; //与上面等价,不使用类型别名来声明函数的返回值
//使用尾置返回类型(trailing return type)来声明函数的返回值
auto func(int i) -> int(*)[10]; //与上面等价
相关知识点
- using
相关/参考链接
《C++ prime 第五版》p205