- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第08章函数(二)
第八章 函 数(二)-----关于变量的属性 §8.8 局部变量和全局变量 一. 局部变量 在一个函数内部定义的变量,或在一个函数的复合语句中定义的变量,称为局部变量,它只能在本函数或复合语句范围内使用。 如: float f1(int a) {int b,c ; ……} /*a,b,c在f1函数中有效*/ main() {int m,n,b; ……} /*m,n,b在main函数有效*/ 说明: 1.函数的形式参数也是局部变量。 2.不同的函数中可以使用相同名字的变量,它们在内存中占不同的存储单元。 §8.8 局部变量和全局变量 二. 全局变量:在函数之外定义的变量,称为全局变量, 它有效范围是从定义变量的位置开始到本源文件结束。 §8.8 局部变量和全局变量 例如:阅读下面程序,写出运行结果(s8_16.c) int a=3,b=5; /*a,b为全局变量,*/ max(int a,int b) /*形参a,b和变量c都是局部变量 */ { int c; c=ab?a:b; return(c); } main() { int a=8; /*变量a为局部变量*/ printf(%d\n,max(a,b)); } 有一个一维数组,内放10个学生的成绩,写一个函数,求出平均分,最高分和最低分 §8.9 变量的存储类别 根据变量的生存期(存在的时间)可将变量分为动态存储方式和静态存储方式。 在内存中供用户使用的存储空间分为以下三部分,数据分别存放在静态存储区和动态存储区中。 全局变量存放在静态存储区中,局部变量(未加static说明的)存放在动态存储区中。 §8.9 变量的存储类别 一. 静态存储:是指在程序运行之前就为变量分配了相应的存储空间,在程序的整个运行期间,静态变量一直占据这些固定的存储空间,直到整个程序运行结束。 二. 动态存储:是指在程序运行期间根据需要进行动态的分配存储空间。函数调用结束后释放存储空间。如果在一个程序中两次调用同一个函数,那么分配给此函数中局部变量的内存空间可能是不同的。 三.局部变量的存储方式 局部变量分为自动变量(auto)和静态变量(static),缺省为自动变量。自动变量存在动态存储区中,静态变量存储在静态存储区中 。 §8.9 变量的存储类别 例如:阅读下面程序,写出运行结果(s8_17.c) f(int a) { auto int b=0; /*自动变量赋初值是在函数调用时进行的*/ static int c=3; /*静态变量是在编译时赋初值的 */ b=b+1; c= 1 + c; return(a+b+c); } main() { int a=2,i; /*a,i为自动变量 auto 可省略*/ for(i=0;i3;i++) printf(%d ,f(a)); } §8.9 变量的存储类别 说明: 1.静态变量是在编译时赋初值的,每次调用函数时,不再赋初值,而只是保留上次函数调用结束时的值。 2.如果在定义变量时不赋初值,对于自动变量是一个不确定的值;对于静态变量编译时自动赋初值为0。 例如: main() { int x ,a[10]; static int y, b[10]; · · · } §8.9 变量的存储类别 fun (int x) { static int a=3; a+=x; return(a); } main() { int k=2,m=1,n; n=fun (k); n=fun (m); printf(%d\n,n); } §8.9 变量的存储类别 思考题2:求下面程序的输出结果。 int m=13; int fun2(int x,int y) { int m=3; return(x*y-m); } main() { in
您可能关注的文档
最近下载
- 成本会计学第9版张敏.pdf VIP
- 公路养护日常小修保养施工组织设计 附公路隧道施工技术规范.doc VIP
- 国家开放大学电大《组织行为学》机考终结性2套题库及答案.doc VIP
- 2024秋国开一网一 微积分大作业word版答案.docx VIP
- 湛江市麻章区数学小升初数学试卷.doc VIP
- 《好利来食品盈利能力研究》文献综述3000字.docx VIP
- 学校安保服务投标方案(技术方案).doc
- 广东省湛江市麻章区2023年小升初数学试卷(含答案).pdf VIP
- 四川大学《微机原理与接口技术》2022-2023学年第一学期期末试卷.pdf VIP
- 海浦蒙特COOL100炫系列别墅电梯控制柜用户手册-中-V1.2.pdf VIP
文档评论(0)