文档介绍:第8章函数
概述
函数的定义
函数的返回值
函数的调用
函数参数及其传递方式
函数的嵌套与递归调用
数组作为函数参数
变量的存储属性
内部函数和外部函数
概述
一、模块化程序设计和函数
1、模块化程序设计
基本思想:将一个大的程序按功能分割成一些小模块。
特点:
各模块相对独立、功能单一、结构清晰、接口简单
控制了程序设计的复杂性
缩短开发周期
避免程序开发的重复劳动
易于维护和功能扩充
开发方法: 自上向下,逐步分解,分而治之
2、C是模块化程序设计语言
一个较大的程序一般由几个程序模块组成,每个程序模块完成
一定的功能。在C语言中,这种功能模块就是由函数来实现的。
2、C是模块化程序设计语言
C是函数式语言,一个源程序文件是1个编译单位,
必须有且只能有一个名为main的主函数
C程序的执行总是从main函数开始,在main中结束,不管其位置
所有的函数独立定义,互相调用。main( )函数可以调用任意其
它函数,其它函数之间可以相互调用,但任何函数都不能调用
main( )函数。
源程序文件1
预编译命令
说明部分
执行部分
函数1
函数n
源程序文件i
源程序文件n
C程序
二、数学函数和C函数
如数学中有: f(x)=
f(0)=
f(1)=
f(2)=
定义函数
调用函数
形式参数
实际参数
函数值
= 0
=
= 4
二、数学函数和C函数
再如: g(x, y)=
g(3,4)= = 5
定义函数
调用函数
两个形式参数
两个实际参数
函数值
三、函数分类
1、按照使用特点
标准函数(库函数):由系统提供,解决公共问题,
使用时要包含相应的库文件。
自定义函数: 由用户自己定义,解决特定的问题
有参函数:主调函数与被调函数之间有参数传递
无参函数:主调函数与被调函数之间无参数传递
通常来执行一组操作
2、按照函数形式
使用库函数应注意:
1、函数功能
2、函数参数的数目和顺序,及各参数意义和类型
3、函数返回值意义和类型
4、需要使用的包含文件
函数必须定义才能够调用,在函数定义时,要对函数的类型、形参及其类型、函数中所要完成的操作、返回的函数值进行一系列的规定,根据这些规定才能够正确的对函数进行调用。
其中:
函数中所完成的操作是函数的核心部分,是由程序语句
实现的;
函数及形参的类型是正确使用函数的依据;
函数返回的值是调用函数后所得到的结果。
函数的定义
函数的定义
一般定义格式
合法标识符
函数体
函数类型函数名(形参类型说明表)
{
说明部分
语句部分
}
现代风格:
例空函数
dummy( )
{ }
函数体为空
函数返回值类型
缺省int型
无返回值void
例有参函数(现代风格)
int max(int x,int y)
{ int z;
z=x>y?x:y;
return(z);
}
例无参函数
printstar( )
{ printf(“**********\n”); }
或
printstar(void )
{ printf(“**********\n”); }
函数的参数和函数的值(返回值)
一、函数的参数
包括形参和实参,要正确进行函数的调用,必须确定参数的数量和类型。
函数定义时函数名后的括号中的变量叫形式参数。形式参数只能是变量和数组名
函数调用时函数名后的括号中的参数叫实际参数。实际参数可以是常量、变量、数组名、表达式和函数值。
函数的返回值
二、返回语句
形式: return(表达式);
或 return 表达式;
或 return;
功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数
说明:
函数返回值的类型:所返回函数值的类型取决于函数的类型。
若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换
void型函数:当函数不需要返回值时。