网站开发与设计实训总结两千字,网站正能量入口,Wordpress登录后顶部的黑,阳泉营销型网站建设最近看C primer#xff0c;看到《C primer》6.3.3练习#xff0c;要求书写返回数组引用的函数声明#xff0c;觉得有必要实践记录一下。 这里先总结返回数组的引用的的函数声明写法#xff08;下面的Type是数组元素的类型#xff0c;可以是int、float等#xff0c;如果要…最近看C primer看到《C primer》6.3.3练习要求书写返回数组引用的函数声明觉得有必要实践记录一下。 这里先总结返回数组的引用的的函数声明写法下面的Type是数组元素的类型可以是int、float等如果要返回指向数组的指针亦同将下面的改成*即可 写法1 函数声明为 decltype(odd) arrPtr(int i); //odd是个数组需要在前面定义如int odd[]{1,2,3};写法2 函数声明为 Type (arrPtr(int i))[5]; //返回5个元素数组的引用写法3 函数声明为 auto arrPtr(int i) - Type ()[5];//返回5个元素数组的引用写法4 在开头使用类型别名 using arr Type[5];//using的类型别名或 typedef Type arr[5];//typedef的类型别名函数声明为 arr arrPtr(int i) //返回5个元素数组的引用写一段代码看看
#include iostream
using namespace std;int odd[] {1, 3, 5, 7, 9};
int even[] {2, 4, 6, 8, 10};
decltype(odd) arrPtr(int i);
int main(int argc, char *argv[])
{int *q arrPtr(2);for (int *p q; p ! q 5; p)cout *p ;
}
decltype(odd) arrPtr(int i)
{return (i % 2) ? odd : even;
}输出 如果把代码中的int *q arrPtr(2);改成
int *q arrPtr(1);所以返回的引用是什么呢我们在main函数添加下面的语句
cout odd endl;
cout arrPtr(1) endl;打印的地址其实是一样的这说明返回的是数组的头指针。