欢迎来到天天文库
浏览记录
ID:43946390
大小:174.50 KB
页数:39页
时间:2019-10-17
《函数定义的一般形式(2)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、§8.1概述§8.2函数定义的一般形式§8.3函数参数和函数的值§8.4函数的调用§8.5函数的嵌套调用§8.6函数的递归调用§8.7数组作为函数的参数§8.8局部变量和全局变量§8.9变量的存储类别§8.10内部函数和外部函数结束§8.1概述1.一个较大的程序一般应分为若干个程序模块,每一个模块用来完成一个特定的功能。这样做的优点是:a)每个模块要实现的功能相对简单,算法容易建立,程序的编写调试简单且不易出错;b)便于众多设计人员分工协作,发挥各自优势,提高软件的设计质量;c)减少重复设计。这就是所谓的“模块化程序设计”。2.在C语言中,是用函数实现各个模块的
2、功能。故,在C程序设计中,要实现模块化程序设计,一般要按照结构化程序设计方法,对给定的设计任务采用“自顶向下,逐步细化,模块化设计,结构化编码”的方法进行。问题:1)众多函数如何编辑;2)众多函数之间的关系如何?3)如何建立一个函数?4)怎样使用这些函数?BackContinueBackContinue3.一个C程序由一个主函数和若干函数构成,这些函数可以分别编辑在不同的C语言源文件(.C)中。如下图所示。C程序源程序文件1源程序文件2源程序文件n……预处理命令全局变量声明函数1函数n……函数首部函数体4.一个C语言源程序由一个或多个函数及其它部分构成,但主函数
3、只能存在于一个源程序文件中。一个函数由函数首部和函数体两部分构成。如下图所示。C语言源程序文件变量及函数声明执行语句(若干条)类型名函数名(形参表列)预处理命令全局变量声明函数1函数n……函数首部函数体BackContinue5.函数的使用。不论所有函数是否处于同一源程序文件,均是主函数(main函数)调用其它函数,其它函数也可以相互调用,甚至一个函数也可以调用它自己,一个函数可以被一个或多个函数调用任意多次。如下图所示。main函数a函数b函数c函数d函数e函数f函数g函数h函数i函数e函数gBackContinue6.本章的主要任务1)学习并掌握函数的定义方
4、法;2)学习并掌握函数的调用方法和调用形式;3)学习并掌握主调函数与被调函数之间的数据传递途径和实现方法。7.说明:1)上述内容是我们利用C语言进行程序设计的关键或核心内容之一。当然,要在程序设计中真正发挥和体现C语言的优势及其特点,除了要掌握好本章所学的内容外,还有之后其他章节的内容。2)在定义一个函数时,在明确其功能的前提下,一定要注意以下三个方面的问题:有无需要加工的数据,如有,是什么样的数据;进行怎样的加工及如何加工;有无结果,如有,是什么样的数据(称为函数的返回值)。如下图所示。需加工的数据加工或操作结果BackContinue例如:求两个数中最大值的
5、函数。intmax(inta,intb){intc;c=a>b?a:b;return(c);}整型数据a、b对a、b进行比较,求出其中的最大数结果为整型数据c由此例可以看出,所需加工的数据仅是一些符号量,具体的值并没有给定;而所进行的加工由C语言运算符表示,运算对象即为需要加工的数据a、b;加工的结果存放在变量c中。当该函数被调用后,a、b的具体值才可确定,结果也是一个确定的数值,给定不同的数据就可得到不同的结果。可见,定义一个函数,首先要根据要实现的功能要求,定义几个符号变量,再用C语言的运算符、表达式和语句描述出对它们所进行的一系列操作,并将结果存放起来,置
6、于return后面即可。3)C语言系统提供了许多函数,对这些函数的理解与应用与上面的分析相同,在使用时我们需要知道它的功能(无需直到该功能是如何实现的),函数参数(即需加工的数据),返回值(即加工结果)。其实,BackContinue当定义好一个函数后,对它的使用与系统提供的函数的使用方法相同。不过用户定义的函数形式更为丰富多样。§8.2函数定义的一般形式一、无参函数的定义类型标识符函数名(){声明部分语句}二、有参函数的定义类型标识符函数名(形式参数表列){声明部分语句}如求两个数中最大值得函数和三个数中最大值的函数。intmax(inta,intb,intc
7、){intd;d=a>b?a:b;d=c>d?c:d;return(d);}BackContinue特点:不需要从外界获取数据(信息),其功能一般是完成一系列特定的操作,如输出,可以有、也没有返回值。类似于getchar()、gets()等。BackContinue特点:这种类型的函数是最常见的用户自定义函数,需要从外界获得数据(函数参数),并对它们进行一系列操作获得所需的结果,作为函数的返回值。而且函数参数的数量及其类型任意,返回值的类型也是任意的。三、“空函数”的定义类型说明符函数名(){}例如:dummy(){}这种函数的函数体是空的,且没有参数,故称为“
8、空函数”。调用此函数时什
此文档下载收益归作者所有