<C++ Primer >学习笔记 第六章 函数(下)

本文深入探讨C++中的函数,包括返回类型与引用、函数重载和特殊用途语言特性。讲解了返回值的临时性质,禁止返回局部变量引用,以及函数匹配与类型转换规则。此外,介绍了默认实参、内联函数和constexpr函数的使用,最后提到了调试辅助工具assert。
摘要由CSDN通过智能技术生成

6.3 返回类型及引用语句

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

return;
return expression

无返回值的函数
无返回值的函数一般被定义为void型,在函数结尾可以不加return,函数会隐形返回。return可以用作中断函数使用。
有返回值的函数
有返回值的函数一般不可定义为void,函数返回的类型就是函数定义的类型。编译器会在运行时检查这一语法错误。
返回的值是一个临时的变量,一般是拷贝的,如果返回的是引用,那就是引用的别名,完成返回之后,返回值所占用的空间也随之被释放掉。
不要返回局部变量的引用或者指针,因为在函数结束的时候局部变量失效了,引用指向的是一个空区域。
引用返回左值
调用一个返回引用的函数返回的是左值,也就是说函数在左边,如

char &get(string s,int i)
{
   
return s[i];
}

main()
{
   
string s;
get(s,0)='A';
}

在主函数中,函数在等号的左侧,含义是将字符串第一个元素改成字母A。

列表初始化返回值

vector<string> f()
{
   
return {
   };
}

C++11规定这样是合法的,返回的空vector

主函数返回值
main函数的返回值可以看作是状态指示器,返回0表示执行成果,返回其他值表示执行失败,如果在主函数中不加入返回值,一般会隐式的传递一个0。

返回一个数组指针
因为子函数无法返回数组,因此可以返回指向数组的指针或引用。
辨析


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值