- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例】编写一个函数fun,累计当前人数和总分,并返回当前为止的平均分。调用该函数输出10个学生的平均分统计结果。 解:函数fun以当前学生分数为参数,设计两个静态变量n和s,分别累加人数和总分,返回s/n。对应的程序如下: #include stdio.h float fun(int m) { static int n=0; static float s=0; s+=m; /*累计总分*/ n++; /*累计人数*/ return(s/n); } void main() { int a[]={80,56,76,92,85,63,76,96,72,78}; int n=10,i; printf(序号 分数 平均分\n); for (i=0;in;i++) { printf(%d\t%d\t,i+1,a[i]); printf(%5.1f\n,fun(a[i])); } } 执行结果- 4.7.2 域运算符 局部变量可以隐藏全局变量,那么在有同名全局和局部变量的情形时如何访问全局变量呢?域运算符“::”可以提供对全局变量的访问。以域运算符为前缀的变量表示全局变量。 例如,下面程序中有两个变量同名,一个为全局变量,一个为局部变量,可以通过域运算符访问全局变量: int var=10; //全局变量 func() { int var; //局部变量 var=::var; //将全局变量的值赋给局部变量 } 4.7.3 外部变量 静态全局变量只能在定义它的文件中使用,那么非静态全局变量呢?定义在文件1中的非静态全局变量可以由另一个文件(文件2)引用,但需要在文件2中说明一下所要引用的变量,该变量对于文件2来说是外部变量。外部变量说明时用extern标识。 例如,在文件1中定义了一个非静态全局变量var,需要在文件2中使用它的值,则需要在文件2中使用以下语句说明这个外部变量: extern int var; 这样,告诉编译器,它不是一个新的变量,该变量已定义过,直接使用它的值即可。在一个应用程序中,变量的定义只能一次,而说明可以多次。编译程序在遇到变量说明语句时,不再给它分配存储空间。 和变量相同,定义在一个文件中的函数也可以由另一个文件引用,这时也可以使用extern说明,例如,以下语句说明一个外部函数fun(): extern void func(int,int); 注意:在说明外部变量时不能给变量赋初值,否则出错。 4.7.4 自动变量和寄存器变量 C++提供了静态变量、外部变量、自动变量和寄存器变量等四种存储类型,这些存储类型的说明是按下列格式进行的: 存储类型的关键字 类型名 变量名表; 其中,“存储类型的关键字”指出变量的存储类型。前面已经介绍了静态变量和外部变量,下面再讨论自动变量和寄存器变量。 1.自动变量(auto) 一般说来,用自动存储类型说明的变量都限制在某个程序范围内使用,即为局部变量。从系统角度来说,自动存储类型变量是采用堆栈方式分配内存空间。因此,当程序执行到超出该变量的作用域时,就释放它所占用的内存空间,其值也随之消失了。 在C++语言中,说明一个自动存储类型的变量是在变量类型前面加上关键字auto,例如: auto int n; 若自动存储类型的变量是在函数内或语句块中说明的,则可省略关键字auto。其实,我们在程序中见到的未说明存储类型的变量都是auto变量。 2.寄存器变量(register) 使用关键字register说明寄存器类型的变量的目的是将所说明的变量放入寄存器内,从而加快程序的运行速度。 但有时在使用这种说明时,若系统寄存器已经被其他数据占用,寄存器类型的变量就会自动当作auto变量。 * 第4章 函数和预处理 在结构化程序设计中,函数是一个十分重要的概念,它有利于代码共享,节省开发时间,增强程序的可靠性。 main fun1 fun2 fun11 fun12 fun13 fun21 fun22 软件结构图示例 4.1 函 数 概 述 所谓函数就是一系列指令或语句的组合体。设计函数有两个目的: (1)模块化程序设计。 (2)代码重用,使程序简洁清晰。
您可能关注的文档
- 第3章 词法分析.ppt
- 第3章(2) VFP的常用函数.ppt
- 第3章 词法分析和词法分析程序.ppt
- 第3章 环境资源法学概述.ppt
- 第3章-导热-3非稳态.ppt
- 第3章 资源的环境特征(1).ppt
- 第3章 流体运动学与动力学基础.ppt
- 第3章-核酸化学.ppt
- 第3章坐标系与工作平面.ppt
- 第3章导游服务规程31.ppt
- 《GB/T 10810.3-2025眼镜镜片 第3部分:透射比试验方法》.pdf
- 中国国家标准 GB/T 45283.2-2025工业控制系统人机接口组态文件交互 第2部分:基础交互描述.pdf
- 《GB/T 45283.2-2025工业控制系统人机接口组态文件交互 第2部分:基础交互描述》.pdf
- GB/T 45283.2-2025工业控制系统人机接口组态文件交互 第2部分:基础交互描述.pdf
- 中国国家标准 GB/T 10810.3-2025眼镜镜片 第3部分:透射比试验方法.pdf
- GB/T 10810.3-2025眼镜镜片 第3部分:透射比试验方法.pdf
- 《GB/T 27995.1-2025半成品镜片毛坯 第1部分:单焦和多焦》.pdf
- GB/T 27995.1-2025半成品镜片毛坯 第1部分:单焦和多焦.pdf
- 中国国家标准 GB/T 27995.1-2025半成品镜片毛坯 第1部分:单焦和多焦.pdf
- 《GB/T 10810.5-2025眼镜镜片 第5部分:表面耐磨试验方法》.pdf
文档评论(0)