当前课程知识点:C语言程序设计(下) > 第一周:函数(一) > 1.4 函数间参数传递 > 函数返回语句和返回值
除了主调函数和被调函数之间
通过实参与形参之间传递数据之外
还有一种形式叫做
函数的返回值
也就是说
主调函数使用被调函数
得到一个确定的值
这就是函数的返回值
那函数的返回值
是通过返回语句获得的
从这个例题中大家看
在主调函数中
我们定义了整型变量
abc
从键盘输入变量a和b的数值
以ab的数值为实参
调用被调函数
被调函数中
实现了将xy中的大的
赋给变量z
返回语句
调用的是return语句
将z的值返回到主调函数
赋给变量c
那么我们就可以
通俗的理解为
整个这个程序的功能就是
键盘输入了两个数
输出其中大的
那么从这大家可以看到
首先
第二点
就是
return语句的后边的形式是
return跟一个表达式
或跟一个具体的变量名
括号可以有
也可以没有
第四点
return语句的返回值的类型
与函数定义的类型要求一致
我们前面说过
定义函数时候的类型
就是返回值的类型
如果程序中
真的有不一样的时候
那一定是以函数定义的类型为准
如果
函数中没有return语句
一般情况下
这个函数调用后
会带回一个不确定的值
为了避免一些不必要的错误
我们尽量的将
不需要返回值的函数
定义为无类型的函数
也就是冠于
关键字void
作为函数的类型名
有的时候一个函数内部
可以有两个以上的return语句
就跟我们前面看到求素数
return一个0说明不是素数
return1就说明是素数
执行到哪个return语句
就是哪个语句起作用
下面我们就通过一个例题
来进一步的理解
在函数的返回值
和函数的返回语句的使用中
有哪些需要注意的
大家跟我一起来看
首先
我们写
标准输入输出的头文件
然后再
定义一个主函数
在主函数中
咱们首先
定义变量a和b为浮点型
定义一个整型变量m
然后我们对
将要调用的函数
做一个说明
主调函数使用被调函数之前
要对被调函数做个说明
说明的是函数的类型
函数名和形参的类型
那么在主调函数中
我们要通过键盘
为a和b这两个变量
输入数值
从键盘输入a和b的值
将
函数调用的结果
赋给整型变量m
此时a和b是作为函数的实参
调用之后的m到底是多少呢
咱们通过格式输出语句
获得
m的值
主函数写完了
下面咱们写功能函数
在功能函数中
我们先定义
功能函数的类型为整型
函数名为max
函数中有两个
形参
分别是
浮点的x和浮点的y
在功能函数中
我们再定义一个浮点变量n
n的值
取决于
x和y中
相对的大的那个
那在这
我们就用到了条件运算表达式
此时比较x和y的值
将其中大的赋给n
通过返回语句获得n
将函数调用的结果
代回到主调函数
赋给变量m
我们现在保存
保存之后编译
下面开始运行
大家注意
我需要输入两个浮点数
如果此时我输一个4.5
逗号
输一个6.8
大家想
此时的m应该是几呢
运行一下看
m的值为6
为什么
大家一定觉得
为什么不是6.8
请注意
我们定义的
被调函数的类型是整型
函数的返回值是浮点
c语言规定
当函数定义的类型
与返回值类型不同的时候
以函数定义的类型为准
所以我们在编程的时候
一定要注意
避免出现这种问题
给程序的运行结果
带来意想不到的错误
-1.1 函数定义
--内容简介
--函数是什么
--例题演示
--知识点总结
-1.1 函数定义--作业
-1.2 模块化程序设计
-1.3 函数调用、声明和返回
--函数调用的过程
--函数嵌套调用
-1.4 函数间参数传递
--形参与实参值传递
--小结
--html
-1.4 函数间参数传递--作业
-函数递归调用
--html
--html
--html
--html
--html
--html
-函数递归调用--作业
-3.1 变量存储属性
--开场
--局部变量全局变量
--存储类别小结
--html
--html
--html
--html
--html
-3.1 变量存储属性--作业
-3.2 编译预处理
--编译预处理开头
--编译预处理内容
--库函数
--函数总结
--综合例子
--html
-3.2 编译预处理--作业
-4.1 指针的定义、初始化和引用
--本周内容简介
-4.1 指针的定义、初始化和引用--作业
-4.2 指针与数组
--指针与数组
--Video
-4.2 指针与数组--作业
-5.1 指针与字符串
--本周开篇介绍
--指针与字符串
--指针与字符串小结
-5.1 指针与字符串--作业
-5.2 多维数组指针
--指针与多维数组
--html
--html
--html
--html
--html
--html
--html
--html
-5.2 多维数组指针--作业
-6.1指针与函数
--本周开篇介绍
--指针指向函数
--返回指针值的函数
--html
--html
--html
-6.1指针与函数--作业
-6.2指针与指针
--引入指针数组
--指针数组
--二级指针
--指针内容小结
--html
--html
--html
--html
-6.2指针与指针--作业
-7.1 结构的概念
--Video
--Video
--Video
--Video
--html
--html
-7.1 结构的概念--作业
-7.2 结构数组
--Video
--Video
--html
-7.2 结构数组--作业
-7.3 结构指针
--Video
--Video
--Video
--html
-7.3 结构指针--作业
-7.4 结构与函数
--Video
--html
-7.4 结构与函数--作业
-7.5 联合
--Video
--Video
--html
-7.5 联合--作业
-8.1 typedef自定义类型
--自定义类型
-8.1 typedef自定义类型--作业
-8.2 枚举类型
--枚举类型
-8.2 枚举类型--作业
-8.3 链表的概念
--为什么使用链表
--链表的定义和功能
-8.3 链表的概念--作业
-8.4 链表的基本操作
--创建链表的步骤
--创建链表的过程
--访问链表中的节点
--约瑟夫问题
--html
--html
-8.4 链表的基本操作--作业
-9.1 文件概述
--文件概念
--文件分类
-9.1 文件概述--作业
-9.2 文件型指针
--文件结构与指针
--设备文件
--html
-9.2 文件型指针--作业
-9.3 文件的打开与关闭
--文件读写方式
--文件读写操作
-9.3 文件的打开与关闭--作业
-9.4 文件的顺序读写
--字符串输入输出
--html
-9.4 文件的顺序读写--作业
-9.5 文件的随机读写
--文件随机读写
-9.5 文件的随机读写--作业
-9.6 文件检测
--文件检测
-9.6 文件检测--作业
-9.7 文件应用实例
--文件应用实例
--html
--html
-10.1 C语言知识总结
--程序调试概念
--软件测试方法
--程序跟踪调试
--C语言语法要点
--标识符及运算符
--程序设计流程
--数组、函数及指针
--结构和文件
-10.1 C语言知识总结--作业
-10.2 C语言练习
--程序设计方法
--图像合成例子
--html
-期末考试复习题
--html
-期末考试复习题答案
--html