数组不能被拷贝,所以返回值不能是数组类型。

但是我们可以使用返回指针的方式来实现返回数组的目的

声明一个返回数组指针的函数

int (*fun(int i))[10];
// func(int i) 表示调用func函数时需要一个int类型的实参
// (*func(int i)) 意味着我们可以对函数调用的结果执行解引用操作
// (*func(int i))[10] 表示解引用func的返回值将得到大小是10的数组
// int (*func(int i))[10] 表示数组中的元素是int类型

返回值是int类型的数组的指针,数组的大小是10

使用尾置返回值类型  C++11

对复杂的返回值类型比较有用。

开头auto的意义就在于表示该函数应该有一个后置返回值类型

auto func(int i) -> int(*)[10];

使用decltype

int odd[] = {1,3,5,7,9};
int even[] = {0,2,4,6,8};decltype(odd) *arrPtr(int i)
{return (i % 2) ? &odd : &even;
}

decltype的含义就在于反解出表达式的类型,并将之作为一个类型声明来使用

转载于:https://www.cnblogs.com/ChattyKu/p/9602644.html

【共读Primer】52.[6.3]返回类型和return语句--返回数组指针 Page205相关推荐

  1. C++ Primer 第五版 第6章 6.3——函数返回类型和return语句阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.3--函数返回类型和return语句习题答案 目录 6.3 返回类型和return语句 6.3.1 无返回值函数 无返回值函数的特性 6.3. ...

  2. C++ Primer 第五版 第6章 6.3——函数返回类型和return语句习题答案

    理论讲解请参考:C++ Primer 第五版 第6章 6.3--函数返回类型和return语句阅读笔记 目录 6.31 6.32 6.33 6.34 6.35 6.36 6.38 6.31 返回引用无 ...

  3. 返回类型和return语句

    目录 1. 返回类型和return语句 1.1 无返回值函数 1.2 有返回值函数 1.2.0 不要返回局部对象的引用或指针 1.2.1 引用返回左值 1.2.2 用列表来初始化返回值 1.2.3 主 ...

  4. java怎么用return代替else_java – 从一个隐含或明确的“else”方法返回,还是用一个“return”语句返回?...

    有些人认为多个返回语句是不好的编程风格.虽然对于较大的方法是正确的,但我不确定是否可以接受较短的方法.但还有另外一个问题:如果还有明确的写法,如果在前一个if语句中有一个return语句呢? 隐含的其 ...

  5. python return返回值_Python return语句 函数返回值

    return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天就来仔细的讲解一下. python 函数返回值 ...

  6. 小白学C语言之返回值(return语句)

    一.返回值的概念 return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定. return通常是必要的,因为 ...

  7. 【共读Primer】55.[6.4]函数重载--重载与作用域 Page210

    讲解之前,先来看一组代码 string read(); void print(const string &); void print(double); void fooBar(int ival ...

  8. java接口返回类,Java接口和返回类型 - java

    考虑我有以下界面: public interface A { public void b(); } 但是我希望实现它的每个类对方法b()都有不同的返回类型. 例子: public class C { ...

  9. Mybatis返回类型和Java常见对象类型

    点滴记录 项目开发中经常用到的: 1.resultMap 使用这个返回需要实体类和数据库字段关系映射如下面的:BaseResultMap <?xml version="1.0" ...

最新文章

  1. notepad如何新建php,notepad新手怎么使用教程
  2. maven和gradle中,dependency和plugin的区别
  3. 【NLP】 NLP中应用最广泛的特征抽取模型-LSTM
  4. Electron学习-创建一个程序
  5. u-boot2013.10引导linux3.10.30记录
  6. 二叉树的前中后序遍历之迭代法(非统一风格迭代方式)
  7. python协程池操作mysql_python_协程方式操作数据库
  8. [cdq分治][树状数组] Jzoj P4419 hole
  9. 光眼图和电眼图_一种电眼调试方法及装置制造方法及图纸
  10. scrollIntoView()窗口滚动
  11. php类型cms,自定义存储类型
  12. hdu 4005 The war
  13. Android 资源(Resources)访问
  14. Java-Jsp基础教程
  15. MAC的物理地址与IP地址查询方法
  16. 修改服务器网卡速率,linux查看网卡速率命令(linux如何改网卡速率命令)
  17. win7“您可能没有权限使用网络资源”的解决办法
  18. 【日语口语词典学习】第0002页
  19. 无法打开https网页终极解决方法
  20. 批量ping指定端口,批量测试IP地址是否通

热门文章

  1. 源码解析之HashMap实现原理
  2. 主流语言实现冒泡排序算法
  3. for循环之性能优化
  4. HTML实现选择数据库字段,django项目中在后台获取了数据库的某一列,如何将其显示在html模板中的select标签内的option选项下?...
  5. 合成未来宝宝照片_当英国皇室宝宝长大:阿奇王子变卷毛星人,夏洛特公主颜值最能抗...
  6. python37从零开始学_从零开始学Python【37】--朴素贝叶斯模型(理论部分)
  7. Golang实践录:利用反射reflect构建通用打印结构体接口
  8. 清华镜像站 python_使用清华、豆瓣镜像源下载tensorflow
  9. 【clickhouse】clickhouse TCP 方式发送数据 ClickHouse-Native-JDBC
  10. 【ElasticSearch】Es 源码之 Discovery DiscoveryModule Coordinator 源码解读