C++Primer学习笔记(第五版)——函数的返回类型和return语句(第六章)

没有返回值的函数:

没有返回值的return语句只能用在返回类型是 void 的函数中,且这类函数会在最后一句后面隐式的执行return(不要求非得写return)

返回值是void的函数也可以返回一个表达式,此时这个表达式必须是另一个返回void的函数(不明白为什么要这么做,先当作语法记)

有返回值的函数:

return的表达式类型必须与函数的返回类型相同,或者能隐式的转换成函数的返回类型。

在含有return语句的循环后面也应该有一条return语句(因为如果编译时在循环内return,编译器发现不了循环外没有return语句)

函数返回时发生了什么?

用返回值初始化了一个调用点的临时量。(临时量的类型就是返回类型)

因此不要返回局部对象的引用或指针(因为局部变量在函数结束时就会被销毁,所以如果我们返回了一个局部变量的引用(指针),结果将是未定义的)

如果函数返回的是一个引用,则调用此函数会得到左值。(可以给调用结果赋值)

列表初始化返回值:(个人以为目的就是避免在函数内创建一个无用的变量占用空间)

如果列表为空,临时量执行值初始化(默认初始化),否则返回的值由函数的返回类型决定。

如果函数返回的是内置类型,则花括号包围的列表多包含一个值,而且该值所占的空间不应该大于目标类型的空间,如果函数返回的是类类型,由类本身定义初始值如何使用。(就是匹配构造函数)

主函数main的返回值:

main函数的返回值可以看做是状态指示器,返回0表示执行成功,返回其他值表示执行失败,其中非0值的含义依机器而定。

为了使返回值与机器无关,cstdlib头文件定义了两个预处理变量:EXIT_FAILIURE 、 EXIT_SUCCESS。

返回数组指针问题:
返回类型的书写形式:  数组元素类型(*函数名(参数列表))[数组维度]
两种返回类型书写方式:
尾置返回类型:
书写形式: auto 函数名(参数列表)->返回类型。
使用decltype:(搞明白decltype返回的是什么)

decltype() 函数名(参数列表)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值