第9章节 函数.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章节 函数

第9章 函数 C语言是结构化语言,它的主要结构成分是函数。函数作为一种构件,用以完成程序中的某个具体功能。函数允许一个程序的各个任务被分别定义和编码,使程序模块化。因此,设计良好的函数不仅能正确工作,而且不会对程序的其他部分产生副作用。本章将介绍C语言函数的设计,如何用函数分解程序的各个功能,如何用函数构成模块化程序,以及代码复用的基本思想。 9.1 函数说明与返回值 函数由类型说明符、函数名、参数表、参数说明段和函数体五个部分组成。类型说明符定义了函数的返回值,即return语句所返回给调用者的数据类型。函数名是每个函数的惟一名称,函数命名规则与变量相同。参数表和参数说明段是函数的外部接口,函数调用时通过参数将值传递给函数体内,参数表是具体接口的个数,参数说明段是参数的数据类型定义。函数体是实现函数功能的代码块,需要用一对大括号将其包围,return语句放置在函数体内。main()函数具备同样的结构。 9.1.1 函数的类型说明 函数的类型说明符可以是任何数据类型,包括空值型void,即不使用return语句返回任何数据。默认情况下,函数被自动说明为整型。函数必须在第一次调用前定义,这样编译器才能找到该函数。或者将函数的类型说明放在首次调用之前,前置函数类型说明被称为函数原型。 9.1.2 返回语句 函数的返回语句return有两个作用,其一,结束当前函数,调用者获得程序控制权;其二,将计算结果传递给调用者。函数的结束有两种情况,一是函数体内所有的代码执行完毕,二是return语句被执行。 9.2 函数的作用域规则 作用域规则是指代码或数据的有效使用范围。C语言将函数作为独立的代码块,函数之间不能相互访问其内部的代码或数据。函数间数据的传递只能通过接口实现。但是,变量的定义方法可改变函数的作用域规则,可将变量分为局部变量和全局变量两种,本节将讨论这两种变量的使用方法。 9.2.1 局部变量 在函数体内部定义的变量称为局部变量,局部变量的作用域仅限于该函数体内。 9.2.2 全局变量 全局变量的作用域为整个源程序文件,文件中的所有函数或程序块都可以引用。定义全局变量时,需将变量的声明语句放置在所有函数外。 全局变量虽然能方便地在程序的各个函数间传递数据,但同时也破坏了模块的独立性和完整性,所以应尽量避免使用全局变量。 9.2.3 动态存储变量 从变量的生存周期来分类,可将变量分为动态存储变量和静态存储变量。动态存储变量在函数调用时放入内存,函数调用后从内存中删除。 还有一种动态存储变量称之为寄存器变量,寄存器是位于CPU内部的存储单元,CPU读取寄存器内的数据极其快捷。因此,将程序中需要大量反复使用的变量设为寄存器变量可提高程序的运行速度。 9.2.4 静态存储变量 在编译时分配存储空间的变量称为静态存储变量,在函数退出时,静态存储变量依然被保留在内存中,再次执行同一函数会得到与上次退出时相同的数值。声明静态存储变量的关键字为static,声明的一般形式为: static 数据类型 变量名; 9.3 函数的调用与参数 函数通过调用获得程序的控制权,函数的参数是调用者与函数的数据接口。函数可以定义一个或多个参数,也可以省略参数,调用时将与参数的数据类型相匹配的数据置于参数列表中,即可在函数体内使用。参数的调用有多种形式,对函数的影响也有不同的结果。 9.3.1 形式参数与实际参数 形式参数是接口数据的目的地,实际参数是接口数据的来源地。函数定义时出现在参数列表中的参数是形式参数,函数体可通过引用形式参数获得接口数据。函数调用时填入的参数是实际参数,实际参数由调用者提供。形式参数与实际参数的数据类型必须一致,同时还需要注意实际参数的个数和位置要与形式参数相同。 9.3.2 赋值调用与引用调用 赋值调用与引用调用是传递数据给函数的两种形式,前者是将实际参数的数值传递给形式参数,后者是将实际参数的内存地址传递给形式参数。赋值调用不会改变实际参数原有的数值,而引用调用则可能改变实际参数的数值。 9.4 递归 递归函数是能够直接或通过另一个函数间接调用自身的函数,调用自身的方法称为递归调用。递归调用的本质是使用同一算法将复杂的问题不断化简,直到该问题解决。 9.5 实现问题 在设计函数时需要遵循一些基本原则,因为影响到函数的执行效率和可用性。函数是代码复用的基础,一个健壮的函数或由函数组成的函数集可以在多个程序中使用。C语言标准库里所存放的就是这样的函数,这些函数被放置在头文件中,使用时将它包含在程序内即可。 9.5.1 参数和通用函数 通用函数是指能够复用的函数,这一类函数的显著特点是,只使用参数作为接口传递数据。如果一个函数中依赖全局变量访问调用者的数据,在另一个程序中环境改变了,这个函数就无法运行。

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档