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


目录

6.3 返回类型和return语句

6.3.1 无返回值函数

无返回值函数的特性

6.3.2 有返回值函数

有返回值函数的特性

引用返回左值

6.3.3 返回数组指针

声明返回数组指针的函数

使用尾置返回类型


6.3 返回类型和return语句

return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。

两种return语句形式:

(1)return;

(2)return expression;


6.3.1 无返回值函数

无返回值函数即函数返回类型为void。

无返回值函数的特性

(1)可以没有return语句,void返回类型函数会自动执行return

(2)如果需要在函数中间提前退出,需要使用return语句退出

如:编写swap函数,使得在交换值相等时直接退出

void swap(int &val1, int &val2)
{//如果交换值相等,不需要交换,直接退出if (val1 == val2)return;   //return语句提前结束//执行交换,无需return语句,会自动退出int Temp = 0;Temp = val1;val1 = val2;val2 = Temp;
}

6.3.2 有返回值函数

有返回值函数的特性

(1)函数返回类型不是void

(2)必须包含return返回语句,且返回类型必须和函数返回类型相同

 小贴士!!!

函数返回值不要返回局部对象的引用或指针,因为随着函数的结束,局部对象也被释放,局部对象的引用或指针将指向不再有效的内存区域(细节,注意!!


引用返回左值

函数返回引用则得到左值,其他返回类型则得到右值。得到左值如果是非常量就可以对其赋值,但如果是常量引用就不能赋值,如:

# include <string>
# include <vector>
using namespace std;#include <iostream>
#include <string>
#include <vector>
using namespace std;char &get_val( string &str, string::size_type ix)
{return str[ix];  //返回str[ix]的引用
}
int main()
{string s("a value");cout << s << endl;get_val(s, 0) = 'A';  //函数返回左值,并对其赋值cout << s << endl;return 0;
}


6.3.3 返回数组指针

声明返回数组指针的函数

声明返回数组指针函数时,数组的维度必不可少,且需要在形参的后面:

Type (*function(parameter list)) [dimension]

具体的例子:

int (*fun(int i)) [10]

按照如下顺解读上述声明含义:

(1)func(int i)表示调用func函数时需要一个int类型的实参

(2)(*func(int i))表示可以对函数调用的结果执行解引用

(3)(*func(int i))[10]表示解引用func的调用将得到一个大小是10的数组

(4)int (*func(int i))[10]表示数组中的元素是int型


使用尾置返回类型

尾置返回类型一般跟在形参列表后面,用->表示(这里不是太明白):

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

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

  1. 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 返回引用无 ...

  2. C++ Primer 第五版 第6章 6.7——函数指针习题答案

    理论请参考:C++ Primer 第五版 第6章 6.7--函数指针阅读笔记 目录 6.7 函数指针习题答案 6.54 6.55 6.56 6.7 函数指针习题答案 6.54 vector是指向该函数 ...

  3. C++ Primer 第五版 第6章 6.7——函数指针阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.7--函数指针习题答案 目录 6.7 函数指针 使用函数指针 返回指向函数的指针 6.7 函数指针 声明一个函数指针,只需要用指针替代函数名即 ...

  4. C++ Primer 第五版 第6章 6.2——函数参数传递习题答案

    理论讲解请参考:C++ Primer 第五版 第6章 6.2--函数参数传递阅读笔记 目录 6.10 指针形参交换两个数 6.12 引用形参交换两个数 6.13 6.14 6.15 6.16 6.17 ...

  5. C++ Primer 第五版 第6章 6.2——函数参数传递阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.2--函数参数传递习题答案 目录 6.2 函数参数传递 6.2.1 传值参数(值传递) 指针形参 6.2.2 传引用参数(引用传递) 使用引用 ...

  6. C++ Primer 第五版 第6章 6.1——函数及函数定义及调用习题答案

    理论讲解请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用阅读笔记 目录 目录 6.1 形参和实参的区别 6.2 函数语法考察 6.4 交互式输入数字,计算阶乘 6.5 输出实 ...

  7. C++ Primer 第五版 第6章 6.1——函数及函数定义及调用阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用习题答案 目录 6.1 函数基础 函数定义 函数调用 函数的形参和实参 函数的返回类型 局部静态对象 函数声明 头文件 ...

  8. C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)

    C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...

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

    数组不能被拷贝,所以返回值不能是数组类型. 但是我们可以使用返回指针的方式来实现返回数组的目的 声明一个返回数组指针的函数 int (*fun(int i))[10]; // func(int i) ...

最新文章

  1. 论文《一种金融市场预测的深度学习模型: FEPA》(4)----金融市场预测的架构--常见的数据降为方法
  2. DataFrame 数据去重
  3. 通知 | 首届中国心电智能大赛复赛开启
  4. 大神总结的80个Python练手项目列表
  5. 视频直播技术详解(3)编码和封装
  6. 0325互联网新闻 | 腾讯游戏发布“追梦计划”品牌;2018年中国物联网业务收入同比增长72.9%...
  7. movsw 汇编_[转]汇编语言:MOVSB,MOVSW,MOVSD
  8. 写MySQL存储过程实现动态执行SQL
  9. 移动平台对 meta 标签的定义
  10. 年味PSD素材|非常喜庆吉祥手工剪纸
  11. 正则表达式处理字符串指定位置插入【高级】
  12. 软硬交互代码示例_HarmonyOS应用开发-元程序交互
  13. vue一个页面发出多个异步请求_vue(6)—— vue中向后端异步请求
  14. ES Java REST Client 官方文档
  15. 2022软考中级软件设计师---易混淆知识点总结1
  16. 嵌入式Linux开发工具C语言 Makefile的编写
  17. wpsmac和pc版的区别_Mac版WPS Office和微软Office 2019哪个更好?
  18. c语言编程技术列表,C语言系统编程技术点
  19. axure 鼠标样式_Axure菜单导航怎么添加鼠标选中变色的特效?
  20. 这学期她选修了英语 计算机 驾驶三门课程,大一英语翻译答案

热门文章

  1. ssd内部是多个flash一起操作_广告设计中Flash图形动画的应用
  2. java 字母随机数_java如何生成指定长度的随机数字和英文的字符串
  3. 计算机网络利用率是什么_当我们在谈论高并发的时候究竟在谈什么?
  4. linux arm uart应用程序,ARM Linux S3C2440 之UART分析
  5. matlab安装第三方库,Matlab调用cpp+第三方库
  6. win10 .net framework 3.5 安装报错 0x800F0954问题
  7. python显示当前中文日期_Python--获取当前日期和时间(含中文格式)
  8. html中如何设置几张图片在一个div里来回切换_从 B 站的秋季主题中学习 “图层组合动画”...
  9. 备份linux分区到usb,将Linux引导加载程序备份到USB的方法
  10. oracle查询表字段横向排序,sql 查询 - 横着走的螃蟹 - OSCHINA - 中文开源技术交流社区...