函数的三种返回方式
问题描述
- 精选答案
-
1.无返回值的函数
只有返回类型是 void 的函数。
可以不使用 return 语句,会隐式地执行。若想在中间位置提前退出,可以使用 return 语句。可以使用 return 语句返回另一个返回 void 类型的函数。
2.有返回值的函数
在含有 return 语句的循环后面应该也有一条 return 语句。
(1)值是如何被返回的:
返回一个值的方式和初始化一个变量或形参的方式完全一样:返回值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。
(2)不要返回局部对象的引用或指针:
函数完成后,它所占的存储空间也随之被释放掉,因此函数终止意味这局部变量的引用将指向不再有效的内存区域。
想要确保返回值安全,我们不妨提问:引用所引的是在函数之前存在的哪一个对象。
(3)调用运算符的优先级与点运算符和箭头运算符相同,如果函数返回指针、引用或类的对象,可以使用函数调用的结果访问结果对象的成员。
(4)调用一个返回引用的函数得到左值,其他返回类型得到右值。
(5)函数可以返回花括号包围的值的列表,用来对表示函数返回的临时量进行初始化。
(6)主函数 main 的返回值:
允许没有 return 语句直接结束,编译器将隐式地插入一条返回 0 的 return 语句。
main 函数的返回值可以看作是状态指示器,返回 0 表示执行成功,返回其他值表示执行失败,其中非零值的具体含义依机器而定。可以使用 cstdlib 头文件中定义的两个预处理变量,EXIT_FAILURE 和 EXIT_SUCCESS 分别表示成功和失败。
(7)函数可以调用自身,成为递归函数。在递归函数中,一定有某条路径是不包含递归调用的,否则函数将不断地调用它自身知道程序栈空间耗尽为止。
3.返回数组指针:
因为数组不能被拷贝,所以函数不能返回数组,但可以返回数组的指针或引用。
int (*func(int i) [10]; // 声明一个返回指向大小为 10 的整型数组指针的函数
1
1
简化的方式有三种:
(1)使用类型别名;
(2)使用尾置返回类型;
(3)使用 decltype,注意 decltype 不负责将数组类型转换成指针类型。
猜你喜欢内容
-
简单网:构建全网教育数据枢纽,让知识检索化繁为...
简单网:构建全网教育数据枢纽,让知识检索化繁为“简”回答数有0条优质答案参考
-
去三亚有什么好玩的地方
去三亚有什么好玩的地方回答数有1条优质答案参考
-
石狮一日游必去景点推荐
石狮一日游必去景点推荐回答数有1条优质答案参考
-
电气工程师的证书考取条件是什么
电气工程师的证书考取条件是什么回答数有1条优质答案参考
-
房地产估价师的具体报考条件有啥
房地产估价师的具体报考条件有啥回答数有1条优质答案参考
-
房产经纪人的工作内容具体包含什么
房产经纪人的工作内容具体包含什么回答数有1条优质答案参考
-
学习小提琴都有哪些难点
学习小提琴都有哪些难点回答数有1条优质答案参考
-
企业行政管理证书的含金量怎么样
企业行政管理证书的含金量怎么样回答数有1条优质答案参考
-
初学者要怎么入门小提琴
初学者要怎么入门小提琴回答数有1条优质答案参考
-
报考珠宝鉴定师要啥条件
报考珠宝鉴定师要啥条件回答数有1条优质答案参考
















