首页 资讯 > 正文

C++ 返回类型和return语句

2023-04-03 22:08:02 哔哩哔哩

值是如何返回的

返回一个值的方式和初始化一个变量或形参的方式完全一样,返回的值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。


(资料图)

如果函数返回引用,则该引用仅是他所引用对象的一个别名。

其中形参和返回类型都是const string的引用,不管是调用函数还是返回结果都不会真正拷贝string对象。

不要返回局部对象的引用或指针

函数完成后,他所占的空间也会随之被释放掉,因此函数终止意味着局部变量的引用将指向不再有效的内存区域。

上面两条语句都将返回未定义的值,对于第一条return语句,显然他返回了局部对象的引用,第二条return语句,字符串字面值转换成一个局部临时string对象,对于manip来说,该对象和ret一样是局部的,当函数结束时临时对象占用的空间随之释放,所以两条语句都指向了不可再用的内存空间。

指针和引用同样,都是指向了不存在的对象。

返回类类型的函数和调用运算符

调用函数的优先级和点运算符、箭头运算符相同,并且也符合左结合律。

因为上面运算符满足左结合律,所以shorterString的结果是点运算符的左侧运算对象。

引用返回左值

函数的返回类型决定函数调用是否是左值。调用一个返回引用的函数得到左值,其他返回类型得到右值,可以像使用其他左值一样使用返回引用函数。

get_val函数返回的是引用,因此调用是个左值。

列表初始化返回值

函数可以返回花括号包围的值的列表,此列表也用来对表示函数返回的临时量进行初始化。

主函数main的返回值

我们允许主函数没有return语句直接结束,因为编译器在main函数结尾没有发现return的话就会隐式插入一条返回0的return语句。

关键词:

责任编辑:宋璟

返回首页
相关新闻
返回顶部