第五章函数C语言.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 杰弗雷·詹姆士 编程之道 * * 所有的源文件必须有且只能有一个名为main的主函数 C程序的执行总是从main函数开始,在main中结束 一个函数不从属于另一个函数,故不能能嵌套定义,但可以嵌套调用 * (1) void-return、或者缺省return (2)int等-return(z)、或者 return z 当函数执行到return语句时, 就中止函数的执行, 返回到调用它的地方。 * warning * 第5章 函数 5.1 函数的定义 5.2 函数的调用 5.3 函数的声明 5.4 函数参数的传值 5.5 嵌套调用和递归调用 5.6 变量的使用范围和存储类别 一、局部变量与全局变量 局部变量(也称为内部变量):在函数内部定义, 有效使用范围是从定义处开始,到本函数结束为止。 全局变量(也称为外部变量):在函数外部定义,不 作特殊声明的情况下,有效使用范围是从定义处开 始,到所在源文件末尾为止。 例 如: 两个n不是同一个变量,可以同名 【例5.11】局部变量的有效区域。 局部变量a和 b的有效范围 超出此范围使用它们会出错 【例5.12】全局变量的有效区域。 全局变量a和b定义函数外部,有效范围从定义处开始,到所在源文件结束为止。 【例5.13】不同函数中的同名局部变量。 fun中a和b的 有效范围 main中a和b 的有效范围 【例5.14】局部变量和全局变量同名。 局部变量 a和b的有 效范围 全部变量 a和b的有 效范围 二、变量的存储类别 一个变量完整的定义中除了变量的数据类型之外, 还应加上存储类型的限制。格式如下: [存储类型] 数据类型 变量名; C语言中,变量的存储类型可以分为四类:auto (自动型)、static(静态型)、register(寄存器 型)、extern(外部型)。 不同类型的变量的生命周期(指的是在程序运行过 程中,变量从创建到撤销的一段时间)不同。 1、auto类型的局部变量 函数形参和局部变量,不加任何修饰时,默 认为auto类型的局部变量。这类变量生命周 期与其所在的函数代码块共存亡。即:函数 调用开始时给变量分配动态内存空间。函数 结束时,释放内存,变量的生命周期终止。 生命周期与有效范围一致。 【例5.15】局部变量的生命周期。 2、static类型的局部变量、全局变量 static修饰的全局变量和局部变量分别称为静态全 局变量和静态局部变量。这类变量生命周期与程 序共存亡。在程序开始执行前给它们分配内存, 程序执行完毕时释放内存。在程序执行过程中它 们占据固定的存储空间。生命周期是到整个程序 结束,有效范围是到所在的源文件结束。 【例5.16】静态局部变量的生命周期。 3、全局变量 普通的全局变量存放在内存中的静态存 储区,生命周期到整个程序结束。它的 有效范围可以通过将其声明为extern类 型扩展到整个程序结束。 【例5.17】全局变量的生命周期和有效区域。 同一个项目中有两个源文件test1.c、test2.c。 运行test2.c文件,出错。虽然全局变 量A的生命期是整个程序,在整个程 序中都占有内存,但是它的有效区域 是test1.c文件,在test2.c文件中不能 使用test1.c文件。 4、extern类型的全局变量 extern类型的全局变量存放在内存中 的静态存储区,生命周期到整个程序结 束,它的有效范围是到整个程序结束, 两者一致。 【例5.18】extern类型全局变量的生命周期和 有效区域。 同一个项目中有两个源文件test1.c、test2.c。 运行test2.c文件,输出0。 扩展也可以写为“extern A;”,这是 test1.c中定义的全局变量A的有效区域 扩展到test2.c文件中。若未给全局变 量赋初值,内存空间中的值为0。 【例5.19】用extern扩展static类型全局变量的有效区域。 运行test2.c文件,程序出错。静态全局变量A的有效区域是其定义所在的文件test1.c,不能扩展它的有效范围到程序中的其他文件。 5、register类型的局部变量 有些使用频繁的变量,为了节省存取变量时 花费的时间,提高程序效率,可以将其设置 为register类型的变量,直接从寄存器中存 取。例如:在一个函数中执行100000此循 环,每次循环都要用到某个局部变量i,就可 以将其说明为register类型。 【例5.20】编写函数sum求1+2+...+1000的值。 多文件程序 多文件程序的内容安排需遵循以下原则: (1)头文件中只写可执行语句以外的、不分配内存空间的描述,包含:文件包含命令、公共类型的定义、

文档评论(0)

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

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

1亿VIP精品文档

相关文档