- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11讲 函数嵌套、的递归
第七章 函数 例 统计字符个数 #includestdio.h int countch( ); /* 函数原型声明 */ void main( ){ int num; num = countch( ); printf(输入的字符个数 = %d\n, num); } int countch( ){ int cn=0; while(getchar( )!=\n) cn++; return cn; } 例 计算Fibonacci(斐波拉契)数列的第n项。 #includestdio.h int fib(int n){ int res; if(n==1||n==2) res=1; else res=fib(n-1)+fib(n-2); return res; } void main( ){ int m; scanf(%d, m); printf(fib(%d)=%d\n, m, fib(m)); } 变量的作用域是指定义变量的区域和可以引用变量的区域。 定义:在函数外定义的变量,也称外部变量。 作用范围:从其定义的地方开始直至源程序结束。 全局变量命名时,习惯采用首字母大写,其余字母小写的命名方法。 全局变量举例 int Abc, D1; void main( ){ float f1, f2; ··· } float Ka, Hc; void exchange(int x, int y){ double c, e; ··· } 例 说出下列程序的运行结果 #includestdio.h int X=3; int func( ){ int c=0; c+=X; X+=10; return c; } void main( ){ int k=2; k=func( ); printf(1) %d\n, k); k=func( ); printf(2) %d\n, k); } 全局变量的特点: 优点 利用全局变量可以从函数中得到一个以上的返回值。 利用全局变量可以减少函数中实参和形参的个数。 缺点 全局变量在程序运行过程中始终占据存储单元,而局部变量在函数被调用时才临时占用存储单元。 函数的通用性降低。 在同一个源程序中,当全局变量与局部变量同名时,在局部变量的作用域内,全局变量不起作用,即全局变量被“屏蔽”。 例 #includestdio.h int M = 5; int fun(int x, int y){ int M = 10; return x*y-M; } void main( ){ int a=7, b = 5; printf(%d\n, fun(a, b)/M); } 1、自动变量 用关键字auto作存储类型说明的局部变量(包括形参)称为自动变量。 自动变量存放在动态存储区,是动态分配存储空间的。 C语言规定:没有指明存储类别的局部变量,一律隐含定义为自动变量。 2、静态变量 所有全局变量和用关键字static作存储类型说明的局部变量称为静态变量。 静态变量存放在静态存储区,一旦为其分配了存储单元,它们在整个程序执行期间将固定地占据这些存储单元。 所有全局变量都是静态类的,如果明确用static作存储类型说明,则全局变量仅能为本源文件中各函数使用,不能为本源文件以外其他源文件中的函数所使用;如果省略static,则全局变量能被本源文件以外其他源文件中的函数所使用。 静态局部变量举例 #includestdio.h void f(int n){ static int s=0; s=s+1; printf(No.%d: s=%d\n, n, s); } void main( ){ int num; for(num=1; num4; num++) f(num); } 静态局部变量的特点: 静态局部变量在整个程序运行期间固定占有存储单元。 静态局部变量和全局变量一样,均只在编译时赋初值一次,以后每次函数调用时使用上次函数调用结束时的保留值. 静态局部变量定义时如不赋初值,系统编译时会自动对数值型静态局部变量赋初值为0,对字符型静态局部变量赋初值为\0。 静态局部变量仅能为定义它们的函数所使用,其他函数不能使用和影响它们。 3、寄存器变量 用关键字register作存储类型说明的局部变量称为寄存器变量。寄存器变量在可能的情况下,在程序执行时,存放在CPU的通用寄存器中。 说明: 通用寄存器的长度一般与
您可能关注的文档
- 短语结构的类型.ppt
- 石油化工大型建设项目总体设计内容的规定.pdf
- 石油化工工的程建设项目设计工时定额.pdf
- 矿井基的本建设程序的主要内容和要求.doc
- 研磨设计模式-的-摘录笔记1.1.doc
- 研究方的法 W5.pptx
- 石化企业安的全类警示标识设置参考标准.doc
- 研究的生资本论复习资料.doc
- 破三类的文体共同题目十八式.ppt
- 破解慈善公信力困境_可追溯系统原理运的用的理论与实证_张鹏.pdf
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
最近下载
- NB_SH_T 6056-2022CN 轻质烃及发动机燃料中有机氯含量测定 微库仑法.docx
- 钳工工艺技能与训练全套教学课件.pptx
- 东菱DL-T06(BM1230)面包机说明书.pdf
- 环氧树脂生产基本工艺.doc
- 炼铁生产 球团生产工艺操作与设备 项目四:生产出9-16mm小球 .ppt
- 人教版六年级上册数学第六单元综合测试卷(含答案).doc VIP
- 阿法拉伐分油机中文说明Instruction book1.pdf
- 人教版数学六年级上册第六单元综合提优卷(含答案).docx VIP
- 人教版数学六年级上册第五单元综合提优卷(含答案).docx VIP
- 人教版数学六年级上册第四单元综合提优卷(含答案).docx VIP
文档评论(0)