返回数组指针
来源:互联网 发布:python关闭网页 编辑:程序博客网 时间:2024/05/19 14:37
返回数组指针
因为数组不能被拷贝,所以函数不能返回数组。不过,函数可以返回数组的指针或者引用。其中最直接的方法就是使用类型别名。
typedef int arrT[10]; //arrT是一个类型别名,表示含有10个整型数的类型using arrT = int[10]; //同上的等价声明arrT* func(int i); //函数func返回一个指针,指针指向一个含有10个整型数的数组
声明一个返回数组指针的函数
如果不使用类型别名,则数组的维度必须跟在函数名字之后。
例如:
int (*func(int i))[10]
则可以逐层理解函数意思:
* func(int i)是一个函数
* *func(int i)表示我们可以对函数返回值进行解引用,可将它替换为一个普通变量,例如a
* 将第二步替换为a,得到int a[10]为一个长度为10的整型数组,表示函数返回的值是一个解引用后为数组的类型变量,即为数组指针。
同理,一个返回函数指针的函数该怎么写呢,如下所示:
* 首先,一个函数指针可以写成int (*a)(int,int)
* 然后,将func替换成函数,如下写法
int (*func(int i))(int,int)
则表示了func函数返回的值解引用后为一个函数,即返回的是一个函数指针。
举个例子
int add(int a,int b){ return a+b;}int (*funcadd())(int,int) //一个返回函数指针的函数{ int (*a)(int,int) = &add; //定义一个函数指针,并为其赋值 return a;}int main(){ int a=1,b=2; cout<<(*funcadd())(a,b)<<endl; //调用函数得到函数指针,解引用后再调用返回函数 return 0;}
尾置返回类型
C++11中简化了上述的声明方法,可以使用尾置返回类型,尾置返回类型跟在形参列表后面并以一个->符号开头。为了表示函数真正返回类型在形参列表之后,我们在本应该出现返回类型的地方放置一个auto,例如:
auto func(int i) -> int(*)[10];
可以清楚地看到函数返回类型是一个数组。
阅读全文
0 0
- C++返回数组指针
- 函数返回数组指针
- 函数返回数组指针
- 函数返回指针数组
- 返回数组指针
- 函数返回数组指针
- 函数返回数组指针例程
- 返回数组指针的函数
- 返回数组指针的函数
- mfc 返回CStringArray数组指针
- 6.3.3 返回数组指针
- C++之返回数组指针
- 关于函数指针数组与返回数组指针的函数
- 函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 洛谷 P1736 创意吃鱼法
- 利用python re提取文件中的块内容(多行)
- [容斥][dp][卡特兰数]登山
- Android数据库表格创建报错
- 向指定 URL 发送POST方法的请求(状态码200和其他有区别)
- 返回数组指针
- css3选择器
- 机器学习思维导图
- cs231n
- java操作elasticsearch使用QueryBuilders进行数据查询
- Android插件化原理解析——Hook机制之动态代理
- ue4 maya max导入导出旋转坐标轴问题
- 设计模式
- python选择开盘某一段时间振幅较小的股票