读万卷书,行万里路——木子成
使用原型、类型别名、decltype、尾置方法返回数组指针和引用
#include<iostream>
/*
返回数组引用只需将‘ * ’改为‘ & ’
当为返回数组引用时‘ return arr ’
*/
//原型返回数组指针用法
int(*fun(void))[10]{
int arr[10];
return &arr;
}
int main() {
int(*arr_s)[10] = fun();
return 0;
}
//类型别名返回数组指针用法
typedef int arr[10]; //等价于 using arr = int[10]
arr* fun(void) {
int arr_s[10] = { 1, 2 };
return &arr_s;
}
int main() {
int(*parr_s)[10] = fun();
return 0;
}
//decltype返回数组指针用法
int arr[10];
decltype(arr) *fun(void) {
return &arr;
}
int main() {
int(*arr_s)[10] = fun();
}
//尾置返回数组指针用法
auto fun(void) -> int(*)[10]{
int arr[10];
return &arr;
}
int main() {
int(*arr_s)[10] = fun();
return 0;
}