按初学的理解,return的任务就是返回对应的参数,在外层函数中对这个参数做进一步处理。

实际上return的用法不只这些。

为调用的函数返回参数值

此类应用最为普遍,通常是在一个具有返回值的函数中,返回一个参数值,这个返回的参数可以是一个数、表达式。通常情况下,返回值是一个值,如果想返回多个值可以参考以下三点:

  • 设置全局变量,全局变量是定义在函数外的一个变量,其不属于任何一个函数,所以,虽然在调用函数中return返回一个值,但可以将其余的返回值赋值给全局变量,这样就做到了返回多个值的效果。

  • 使用数组名或指针作为函数形参,返回的是一个地址,主函数可以根据这个地址找到多个,要返回的数据。

  • 使用结构体作为函数形参,结构体中可以包含多种形式的变量,以结构体作为形参相当于将所有返回值打包在一起,一次返回。

提前结束函数

由于return具有把程序流程从被调函数转向主调函数的作用,所以时候也会用来终止函数的调用,也就是说return是提前结束函数的唯一方法。因为函数一遇到return就立即返回,return后面的程序都不再执行,所以一个函数中可以有多个return,但只会执行一个。return后面可以跟一个参数作为返回值,也可以不跟参数,仅仅代表结束此函数。

返回一个函数

如果return后面跟的是一个函数的话,就意味着,跳出此调用函数,并且跳出后执行return后的函数,然后继续在主函数中执行程序。有时利用return返回一个操作,比如在程序调试中出错后,需要return跳出错误函数并向串口打印出错误的原因,这个时候return后面的函数就用来向串口打印错误原因的。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

C语言中return的各种用法相关推荐

  1. c语言函数遇到return就结束,关于c语言中return的用法介绍

    关于c语言中return的用法介绍 发布时间:2020-04-21 16:18:52 来源:亿速云 阅读:334 作者:小新 本篇文章和大家了解一下关于c语言中return的用法介绍.有一定的参考价值 ...

  2. 在c语言中通过return语句,c语言中return的用法

    c语言中return的用法 函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过 return语句返回. return 语句的一般形式为:return 表达式; 或者:retu ...

  3. c语言中 char怎样用,C语言中char*和char[]用法区别分析

    C语言中char*和char[]用法区别分析 本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很 ...

  4. C语言中atoi()函数的用法

    C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...

  5. python语言中with as的用法使用详解

    本篇文章主要介绍了python语言中with as的用法使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 With语句是什么? 有一些任务,可能事先需要设置,事后做 ...

  6. c语言memcopy_C语言中memcpy 函数的用法详解

    C语言中memcpy 函数的用法详解 memcpy(内存拷贝函数) c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址 ...

  7. scanf在c语言中的作用,c语言中scanf的基本用法

    前言 scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单: 1 int a; 2 scanf("%d",&a); ...

  8. c语言time函数的作用,c语言中time函数的用法

    c语言中time函数的用法 c语言中time函数的用法的用法你知道吗?下面应届毕业生小编就跟你们详细介绍下c语言中time函数的用法的用法,希望对你们有用. c语言中time函数的用法的用法如下: 头 ...

  9. c语言sinx的作用,C语言中 sinx cosx 的用法

    #include #include int main() { double pi=acos(-1.0); double angle; scanf("%lf",&angle) ...

最新文章

  1. vue输入框联想词功能
  2. Redis缓存穿透 缓存击穿 缓存雪崩原因及其解决方案
  3. Node.js 教程
  4. ubuntu安装kali工具包
  5. 什么是浏览器同源策略?
  6. Java面试题以及答案精选(架构师面试题)-Spring专题
  7. android中的横幅通知
  8. LeetCode 939. Minimum Area Rectangle (最小面积矩形)
  9. 【材料课堂】锂电池基础
  10. 完善计算机 实践性教学,计算机基础实践性教学分析论文
  11. 酒桌上的那些礼仪规矩~
  12. 解决Configure TrackPoint重启后不能保存的问题
  13. 个人信贷不良资产管理 难题亟待解决
  14. Connection could not be established with host smtp.163.com [Connection timed out #110]
  15. django 使用网上下载的前端模板
  16. PHP获取自然周始末时间
  17. 应用bootstrap模板
  18. java服务器端集成微信小程序
  19. 无法从计算机验证正在安装驱动,intel CPU集显驱动失败,无法为此计算机验证正在安装的驱动程序...
  20. IntelliJ IDEA 2021下载、安装

热门文章

  1. tls1.1 tls1.2_Java 8将默认使用传输级别安全性(TLS)1.2
  2. jaxb 命名空间_在JAXB解组期间应用名称空间
  3. JLBH示例1 –为什么应在上下文中对代码进行基准测试
  4. jpa 查询 列表_终极JPA查询和技巧列表–第2部分
  5. glassfish_具有GlassFish和一致性的高性能JPA –第2部分
  6. spring mvc拦截器_Spring MVC拦截器示例
  7. 用Java创建自己的AOP
  8. 使用GZIP和压缩数据
  9. 使用Arquillian测试安全的EJB
  10. Java状态和策略设计模式之间的差异