C程序设计教学做一体化教程_第6章_ 函数的结构与调用.ppt

C程序设计教学做一体化教程_第6章_ 函数的结构与调用.ppt

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

1.auto局部变量 局部变量默认是auto变量,操作系统以动态方式为其分配内存。也就是说声明局部变量时默认地有关键字auto修饰,即下列声明局部变量是等价的: auto int x; int x; 当函数被调用执行时,操作系统为函数体中以及参数中的局部变量分配内存空间,函数体执行完毕,操作系统即刻释放分配给局部变量的内存 2.static局部变量 在声明局部变量时可以使用static关键字给予修饰,例如: static int x; static float y; 声明了两个static局部变量。static局部变量特点如下: 可以把static理解为:在程序运行期间,操作系统为static局部变量分配了一个固定的、不再改动的内存区域。 当函数调用执行完毕,操作系统不释放为static局部变量分配的内存空间(这一点和auto局部变量不同),函数调用结束时会保留当前static变量的值。 也就是说,函数被再次调用时,操作系统不再为static局部变量分配的内存或初始化。因此,static变量的初始值是上次函数调用保留下来的值。 3.全局变量 操作系统总是以静态方式为全局变量默分配给内存空间。全局变量的内存空间,一直到程序结束才释放所占用的内存。如果不希望在全局变量有效范围之外的地方使用关键字extern引用全局变量,就可以使用static修饰该全局变量,例如: static int number; 但需要特别注意的是,对于全局变量,操作系统总是以静态方式分配给内存空间,当程序显示地用static修饰全局变量时,static关键字意义和作用不是在内存分配方式上,而是在有效范围上,意思是有效范围固定不动了、其作用就是不允许在有效范围外使用extern引用它。 * * 5. 简单示例 例子8演示了auto局部变量和static局部变量的区别,请读者注意程序的运行效果(图6.18)。 * * 6.8.2 能力目标 巧用static局部变量。 * * 6.8.3 任务驱动 1.任务的主要内容 定义一个函数,该函数原型是long muti(int n),muti(int n)中有一个static的 long型变量chengji,初始值是1。muti函数将参数n与chengji的乘积再次存放到chengji中,并返回chengji的值。 在main函数中调用muti函数10次,得到10!。 2.任务的模板 按着任务核心内容完成模板:将【代码】替换为程序代码。 任务的模版 * * 模板的参考代码 【代码1】:static int chengji=1; 【代码2】:chengji = chengji*n; * * 3.任务小结或知识扩展 当操作系统将C程序的可执行代码(可执行文件)读入内存时,就为函数中的static局部变量分配好了内存空间(即使该函数还没有被调用执行),而且一直到程序结束才释放所分配的内存。因此可以把static理解为:在程序运行期间,操作系统为static变量分配了一个固定的、不再改动的内存区域。因此,函数调用结束时会保留下当前static变量的值,当函数被再次调用时,static变量的初始值是上次函数调用后保留下来的值。 * * 6.8.4 实践环节 利用static局部变量的特点,反复调用一个函数来计算反复调用一个函数来计算1+2+…+n的值。 定义一个函数,该函数原型是long add(int n),add中有一个static的long型变量sum,初始值是0。add函数将参数n的与sum的和再次存放到sum中,并返回sum的值。 在main函数中调用add函数100次,得到1+2+…+100的值。 (参考代码见附录A) * * 6.9.1 核心知识点 1.头文件的作用 C编译器为我们提供了许多头文件,例如stdio.h,math.h,time.h等,这些头文件均存放在编译器指定的 D:\VC6.0\VC98\INCLUDE 目录中。比如,如果想使用编译器提供的库函数fabs(double)计算某个数的绝对值,那么只需使用#include预处理指令包含头文件math.h即可。math.h头文件(见附录D)包含许多常用的数学函数的原型声明。C编译器在编译之前将#include预处理指令指定的文件复制到源文件中,这样一来我们的源文件中就有了库函数的原型声明。 6.9 变量的存储方式 * * 2. 简单示例 例子9使用#include指令包含math.h头文件,计算了8.68的正弦值、5.6的3.7次幂以及e的10.8次方。程序运行效果如图6.19所示。 * * 6.9.2

文档评论(0)

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

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

1亿VIP精品文档

相关文档