返回介绍

4.2.2 有返回值函数

发布于 2025-04-11 22:32:55 字数 1592 浏览 0 评论 0 收藏 0

前面的 showInfo 函数中只有 3 条 printf 函数调用语句,只是在窗口上打印输出 3 行提示信息,所以不需要返回值。但细心的读者可能会发现,程序代码中的两个 scanf 语句都是为了获取用户输入的整数,我们可不可以把它也放入到函数中呢?没错,是可以的。那现在这个函数就不应该是无返回值的函数,因为它需要得到用户所输入的整数,然后把这个整数返回给调用函数的地方,所以就应该是一个有返回值的函数了。

由于函数的功能不仅是能够打印提示信息,而且还会获取用户的输入,所以把这个新的函数命名为“getUserEnter”,然后把 scanf 函数调用语句也加入到函数体中:

函数名之前的 int,表示函数是有返回值的,而且返回值的类型是 int。在函数体中,首先定义了一个 int 类型变量 n,用于存放用户的输入;后面 3 条 printf 函数调用语句与之前相同;紧接着是 scanf 函数调用语句,获取用户输入,并保存至变量 n 中;最后通过 return 语句把变量 n 的值作为返回值返回,并结束 getUserEnter 函数的执行。

有了 getUserEnter 函数后,现在的主函数可以修改为:

代码中,首先定义了两个 int 类型变量 a 和 b,然后通过两次调用 getUserEnter 函数,并把函数的返回值分别赋给变量 a 和 b;最后打印输出变量 a 和 b 的和。

我们甚至可以在主函数中不使用变量,将代码写成下面这样:

在主函数中,只有一条 printf 函数调用语句,由两条 getUserEnter 函数调用语句构成的算术表达式作为 printf 函数的参数,它会将两次 getUserEnter 函数调用的返回值相加,并将结果打印输出在窗口上。

有返回值函数中,数据类型必须是非 void 的,而且在函数体中必须有 return 语句。函数能够通过 return 语句返回一个值,即采用“return 表达式;”的形式,return 关键字后面的表达式(的值)的类型必须和函数名前所定义的数据类型匹配。一旦 return 语句被执行,它会结束函数的执行流程,并将表达式的值返回到函数调用的地方。

在无返回值函数中,也可以有 return 语句,只不过在 return 关键字后面不能有表达式的存在,即采用“return;”的形式。它不会返回值,只是起到结束函数的作用。

最后需要注意的是,有返回值的函数才可以作为赋值表达式的右操作数或者函数的参数,对于无返回值的函数,是不能这样使用的,没有返回值,如何赋值给某个变量呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。