欢迎来到天天文库
浏览记录
ID:50043509
大小:771.00 KB
页数:37页
时间:2020-03-08
《C语言大学教程 教学课件 作者 王浩鸣 郭晔 第6章 函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章函数6.1函数定义6.1.1函数概念根据模块化程序设计的原则,一个较大的程序一般要分为若干个小模块,每个模块实现部分特定的功能。在C语言中,模块是通过对函数的调用来实现特定功能的。所以C程序的全部工作可以理解为由各式各样的函数实现的,即函数式语言(1)函数是按规定格式书写的能完成特定功能的一段程序。(2)C语言是以源文件为单位进行编译的,一个源程序文件由一个或多个函数组成。(3)一个C程序由一个多个源文件组成,C语言将源文件分别编译成目标文件,然后将这些目标文件链接在一起,形成一个可执行文件。(4
2、)从用户使用的角度看,函数有两种:标准函数:即库函数,由系统提供,用户可以直接使用。用户自定义函数:用户根据自己的需要而编写的。函数之间的调用(5)在C语言中,程序总是从主函数开始执行,最终在主函数中结束,不用考虑主函数在程序中的位置,它可以放在程序的任何位置。(6)从函数被调用时是否需要参数来看,函数可分为:无参函数:一般用来执行指定的操作。调用这类函数时,主调用函数并不向被调用函数传递参数。无参函数对是否带回函数值并没有特别的规定。有参函数:在主调用函数(简称为调用函数)和被调用函数(简称为被调函数
3、)之间有参数进行传递。调用函数可以将数据传递给被调函数使用,被调函数中的数据也可以返回给调用函数使用。6.1.2函数定义1.无参函数的定义形式类型标识符函数名(){声明与定义部分语句;}2.有参函数定义的一般形式类型标识符函数名(形式参数表列){声明与定义部分语句;}3、“空函数”的定义类型标识符函数名(){}6.2函数调用6.2.1函数调用过程所谓函数的调用,是指一个函数(调用函数)暂时中断本函数的运行,转去执行另一个函数(被调函数)的过程。被调函数执行完后,返回到调用函数中断处继续执行调用函数剩余指
4、令的过程。被调函数执行完毕后一定要返回调用函数,在函数的调用和返回两个过程中,两个函数之间发生数据的交换6.2.2函数调用形式在程序中,调用函数执行函数体,其过程与其它语言的子程序调用相类似。C语言中,函数调用的一般形式为:函数名(实际参数表列)6.2.3函数的形式参数和实际参数函数的形参和实参具有以下特点:(1)形参变量只有在函数被调用时才会分配内存单元,在调用结束时,立刻释放所分配的内存单元。因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量。(2)实参可以是常量、变量、
5、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参,因此应采用赋值,使用键盘输入等办法使实参获得具体的确定值。(3)实参和形参在数量、类型和顺序上应严格一致,否则在编译时会发生类型不匹配的错误。(4)函数在调用中进行的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。6.2.4参数传递方式1.值传递在函数调用时,实参将其具体的值传递给形参,值传递属于单向传递,
6、只能由实参传递给形参,而不能由形参传回给实参。即形参在被调函数中的任何改变将不会影响调用函数中实参的值。2.地址传递地址传递指的是调用函数时,实参将某些变量、字符串、或数组等的地址传递给形参。这样实参和形参指向同一个内存空间,在执行被调用函数的过程中,对形参所指向空间中内容的变化,能够直接影响到调用函数中对应的量。在地址传递方式下,形参和实参可以是指针变量或数组名,实参还可以是变量的地址6.2.5函数结果返回函数结果是指函数被调用之后,执行函数体中的程序段所得的,并最终返回给调用函数的值,即函数返回值(
7、1)函数的返回值是通过函数中的return语句传递出去的。return语句将被调函数中的一个计算结果带到调用函数中。return语句的一般形式为:return表达式;或return(表达式);(2)如果不需要从被调用函数返回函数值,可以不使用return语句。(3)一个函数中可以有一个以上的return语句。(4)return语句后面的括号可以省略,如returnz;它与return(z)等价(5)return后面的值可以是一个表达式。(6)既然函数有返回值,这个值就应属于某个确定的类型,应在定义函数时
8、指定该函数值的类型。(7)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。即函数类型决定返回值的类型。(8)为了明确表示“不带回值”,可以使用“void”定义“无类型或空类型”。这样,系统保证不使用函数带回任何值6.2.6函数的嵌套调用6.2.7函数的声明主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的
此文档下载收益归作者所有