C语言 函数的返回值

2023-05-16

通过函数调用使主调函数能得到一个确定的值,这就是函数值(函数的返回值)。
1.函数的返回值是通过函数中的return语句获得的。
return语句将被调用函数中的一个确定值带回到主调函数中去。如果需要从被调函数带回一个函数值(供主调函数使用),被调函数中必须包含return语句。如果不需要从被调函数带回函数值,可以不要return语句。
一个函数可以有一个以上的return语句,执行到哪一个return语句 ,哪一个return语句起作用。return后面的值也可以是一个表达式。例如

Max(int x,int y)
{
	return (x>y?x:y);
}

2.函数值的类型
既然函数有返回值,这个值当然应属于某一确定的类型,应当在定义函数时指定函数值的类型。例如下面是3个函数的首行:

int Max(float x,float y)    //函数值为整型
char Letter(char c1,char c2)     //函数值为字符型
double Min(int x,int y)     //函数值为双精度型

注意:在定义函数时要指定函数类型。
3.在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。
如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。对数值型数据,可以自动进行类型转换。即函数类型决定返回值的类型。
例题:将在Max函数中定义的变量z改为float型。函数返回值类型与指定函数类型不同。

int Max(float x, float y)
{
	float z;
	if (x > y)
	{
		z = x;
	}
	else
		z = y;
	return z;
}
int main()
{
	float a, b;;
	printf("输入要比较的两个整数:\n");
	scanf("%f%f", &a, &b);
	int c;
	c = Max(a, b);
	printf("Max=%d", c);
	return 0;
}

输出:
请添加图片描述
【程序分析】
Max函数的形参是float型,在main函数中输入给a和b的值是1.5和2.6。在调用Max(a,b)时,把a和b的值1.5和2.6传递给形参x和y。执行函数Max中的if else语句,是的变量z得到的值为2.6。出现矛盾:函数定义为int型,return语句中的z为float型,要把z的值作为函数的返回值,二者不一致。按照赋值规则处理,先将z的值转换为int型,得到2,它就是函数得到的返回值。最后Max(x,y)带回一个整型值2返回主调函数main。
4.对于不带回值的函数,应当定义函数为“void类型”(或称“空类型”)。
这样系统就保证不使函数带回任何值,即禁止在调用函数中使用被调用函数的返回值。此时在函数体中不能出现return语句。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言 函数的返回值 的相关文章

  • FreeRTOS解析:任务的创建(TASK-2)

    任务的创建 受博客限制 xff0c 如果您想获得更好的阅读体验 xff0c 请前往https github com Nrusher FreeRTOS Book或者https gitee com nrush FreeRTOS Book下载PD
  • FreeRTOS解析:任务切换(TASK-3)

    任务切换 受博客限制 xff0c 如果您想获得更好的阅读体验 xff0c 请前往https github com Nrusher FreeRTOS Book或者https gitee com nrush FreeRTOS Book下载PDF
  • man命令使用指南

    man命令是linux下查找shell命令 函数等使用方法的利器 最简单的使用方式是man lt the thing you want gt 掌握上面那条命令应该也可以满足80 的使用场景了 这里记录一些更加深入的man命令使用的方法 xf
  • Vscode 搭建舒适的 Markdown 编辑环境

    文章目录 1 显示风格2 图片插入3 表格处理4 其他 1 显示风格 使用 Markdown notebook Microsoft xff0c 这个插件可以实现markdown的预览和编辑在同一页面下 xff0c 显示效果如下 外链图片转存
  • 如何启动英伟达TX2的两个CAN口

    英伟达的TX2有两路CAN xff0c 默认情况下是没有启动的 xff0c 通过ifconfig命令可以查看CAN是否启动 xff0c 如果启动了 xff0c 可以看到下面的设备 如果没有相应的设备 xff0c 则说明CAN没有启动起来 通
  • DDR基础

    欢迎关注我的博客网站nr linux com xff0c 图片清晰度和 xff0c 排版会更好些 xff0c 文章优先更新至博客站 DDR全称Double Data Rate Synchronous Dynamic Random Acces
  • OpenCV实验系列之Mask操作

    OpenCV实验系列之Mask操作 注意 xff1a 以下内容根据opencv官网提供的教程结合个人理解所得 xff0c 仅是个人学习笔记 xff0c 可能存在错误或偏差 xff0c 欢迎指正 OpenCV实验系列之Mask操作 Mask矩
  • UART通信可否只接VCC、RXD、TXD而不接GND?

    使用串口登录树莓派时出现的问题 xff1a 将TF卡插入到树莓派 xff0c 然后开启电源 xff0c 采用串口查看登录界面时出现误码 xff0c 最后排查得出是没有共地 那么假设有两款5V单片机 xff0c 独立供电 按理 xff0c 连
  • Linux 网络编程项目 —— FTP 网盘

    文章目录 项目简介知识点描述项目功能指令远程功能指令本地功能指令 使用的关键函数access 函数popen 函数chdir 函数strtok 函数strncmp 函数linux system函数是否执行成功判断方法 基本流程服务端客户端
  • VMware虚拟机

    文章目录 VMware虚拟机联网三种网络连接方式桥接模式联网原理NAT模式联网原理NAT模式配置手动配置网络关于apt命令关于ifconfig命令简介命令格式命令参数使用实例显示网络设备信息 激活状态的 开启 禁用网络 虚拟机内核与逻辑处理
  • 智能无障碍轮椅——ESP8266总体介绍及ESP-01S入门调试

    文章目录 一 ESP8266 介绍二 ESP8266的多种型号1 DT 062 ESP 01和ESP 01S 左边ESP 01S xff0c 右边ESP 01 3 ESP 12F 三 两种开发方式1 AT指令开发方式2 SDK开发方式 四
  • ROS操作系统快速入门

    文章目录 一 简介模块化 分布式的系统设计 二 安装虚拟机与ROS系统安装虚拟机的缺点安装ubuntu20 04 三 ROS系统安装切换镜像源视频教程 四 ROS应用商城APT源简介与指令介绍案例ros应用商城介绍 五 GIthub建立如下
  • Proteus 仿真8086+8255,运行时错误的解决

    要实现的功能 xff1a 通过开关控制流水灯的显示方式 电路原理图 xff1a 汇编源程序 xff1a CODE SEGMENT ASSUME CS CODE START MOV AL 90H OUT 36H AL AGAIN IN AL
  • 7年程序员项目经历归纳总结

    工作五年 xff0c 敲代码7年 xff0c 科研院所 国企 私企都有过经历 xff0c 发现项目的开发过程总是那么的相似 xff0c 过程举例如下 xff08 事实上画个流程图可能更好 xff0c 但是懒得画了 xff09 xff1a 1
  • Ubuntu20.04+ros(noetic)+RealsenseT265+ORB_SLAM3(一)

    noetic安装的很顺利 xff0c 照着官方文档来就行 xff1b Kalibr的编译 xff1a 一开始参考了 Ubuntu16 04 43 RealsenseT265跑通VINS Fusion IATBOMSW的博客 CSDN博客 x
  • 如何开启英伟达TX2的所有USB3.0口

    TX2新烧完系统之后 xff0c 默认只有一个USB3 0口使能了 xff0c 实际上TX2最多可以使能3个USB3 0口 xff0c 在TX2的design guide中 xff0c 可以找到相应的配置说明 xff0c 见下图 TX2默认
  • Ubuntu20.04+ros(noetic)+RealsenseT265+ORB_SLAM3(二)

    终于编译kalibr成功了 xff0c 可以标定t265了 标定分为三个步骤 xff0c 分别是IMU xff0c 双目和联合标定 xff0c 标定过程仍然参考了Ubuntu16 04 43 RealsenseT265跑通VINS Fusi
  • ADRC控制系统离散形式的稳定性证明

    1 引言 这个问题是最近课题组一个师兄的SCI控制论文的一部分 xff0c 应师兄之邀 xff0c 博主贡献了控制系统稳定性的数学证明 博主目前的研究方向跟控制领域毫无关联 xff0c 只负责其中的系统收敛性证明 师兄的控制系统是一个较为一
  • 固定翼无人机的自主降落-Simulink纵向控制仿真

    本项目来源于一项课程设计 xff0c 用于简单固定翼模型的降落 需要模型的请点击下载链接 xff0c 通过积分获取 https download csdn net download nudt zrs 12454986 练习过固定翼飞行的 x
  • 找工作笔试中的常见考点

    1 Java程序初始化执行顺序 xff1a 父类静态变量 父类静态代码块 子类静态变量 子类静态代码块 父类非静态变量 父类非静态代码块 父类构造函数 子类非静态变量 子类非静态代码块 子类构造函数 2 程序运行结果是多少 xff1f pu

随机推荐