欢迎来到天天文库
浏览记录
ID:50084480
大小:414.00 KB
页数:56页
时间:2020-03-08
《C语言程序设计教程 教学课件 作者 王秀贵 等 第8章 函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章函数函数与模块化程序函数抽象的意义函数定义函数原型函数调用与返回参数的传递关系数组作函数参数指针型函数指向函数的指针递归函数main()函数的返回值和它的参数标识符的作用域与存储期存储类别链接属性变量的初始化第页共56页8.1函数与模块化程序把整个程序划分为若干个功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来,这种在程序设计中分而治之的策略,被称为模块化程序设计方法。模块的概念是一种程序抽象,其目的就是将某个程序分解为若干个相对独立的程序单元。在C语言中,函数也是一种抽象,它使用一个标识符(即函数名)
2、来代表一组连续的语句,用户也只需知道它能做什么而不必关心它是怎么做的。第页共56页如果可以把函数看成一个“黑盒子”,那么只要将数据送进去就能得到结果,而函数内部究竟是如何工作的,外部程序是不知道的。外部程序所知道的仅限于输入给函数的内容以及函数输出的内容。一个C语言程序不限制函数的个数,如果说有限制,那就是一个C语言程序至少应包含一个被命名为main的函数。C语言的一个主要特点是可以建立库函数。系统提供了大量的预定义库函数,并提倡尽可能地使用标准库函数。第页共56页8.2函数抽象的意义可以一个标准库函数为例来说明函数抽象的意义。标准库函数是系统
3、预先已定义的函数,可以通过头文件来访问。前面几章已经使用过一些库函数,如在头文件中定义的strcpy(),strcat();在中定义的malloc(),exit()以及在中定义的sqrt()等。第页共56页8.3函数定义在1.7节就已指出,C语言的任何一个函数,都是由函数头加函数体两部分组成。函数的定义是函数抽象的具体实现,或者说就是函数体的具体实现,也就是定义好函数的行为。函数定义的一般形式如下:[函数类型]函数名([形式参数表]){[函数体]}第页共56页其中,“函数类型”即返回值类型
4、,“形式参数表”是一个用逗号分隔的形式参数(简称形参)序列,每个形参包括两个部分:形参类型和形参名。当函数被调用时这些形参接收调用参数的值。“函数体”是任何C语言合法语句的语句序列,并包括在一对花括号“{”和“}”中。第页共56页现就上述定义进一步说明如下函数必须在返回值类型、函数名和形参类型及其个数与函数原型相匹配时定义。关于函数原型,将在8.4节讨论。通常一个函数都有一个返回值,当一个函数没有明确指明返回值类型时,编译器将认为函数的返回值是整型(int)。如果函数确实不需要返回值,则应指明为void型,以告知编译器:本函数无返回值。用于接受
5、函数返回值的变量必须与函数具有相同的数据类型。否则,系统将按类型转换规则自动进行转换。函数可带零个或多个形参,形参应在本函数内定义。一个函数可以没有形参,这时形参表为空表,但圆括号仍然是必需的。第页共56页在上述函数定义形式中,一对方括号表示被它括起来的内容可以“缺省”,即可以省略,也就是说,在定义函数时,可以根据需要,不给出函数类型和形式参数,甚至没有函数体。没有函数体的函数即成为如下结构所示的“最小”函数:function_name(){}第页共56页8.4函数原型被调用函数的定义在前,调用函数的定义在后。调用在前,定义在后,而且又没有作特
6、别的声明。在调用之前,向编译器提供被调用函数应该如何调用的完整信息,即函数原型。第页共56页注意一个函数原型是一个独立的语句。因此,函数原型应以分号结束。建议所有的函数都应该具有函数原型,尤其是那些返回值不是整型的函数。函数原型至少应该出现在调用函数的前面,最好的办法是把函数原型集中在一个头文件中。第页共56页8.5函数调用与返回函数调用return语句第页共56页8.5.1函数调用一个函数如果不调用它,那么这个函数就永远也不会运行。在C语言中,要调用一个函数,只能选择下列两种格式之一。常用的调用格式是:函数名(实参1,实参2,…)另一种调用格
7、式是:(*fPtr)(实参1,实参2,…)其中,*fPtr是用户定义的指向函数的指针,这将在后面讨论。第页共56页8.5.1函数调用函数语句调用:函数调用作为一个独立的语句出现。函数表达式调用:函数调用作为表达式的运算因子。函数参数调用:函数调用作为被调用函数的一个参数出现。函数递归调用:最典型的递归调用是函数自己调用自己。第页共56页8.5.2return语句return语句有两个作用:终止函数的执行;返回一个值给调用者。它的语法为:return;或者return表达式;或者return(表达式);其中的“表达式”是与调用者的返回值类型相同的
8、任意表达式。当被调用函数没有返回值时,“表达式”被省略。第页共56页一个函数可以有多个return语句,但只有一个return语句有被执行的机会。因为
此文档下载收益归作者所有