- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学c语言课件13-作用域
程序设计基础第6章函数第13讲作用域与生存期函数的作用域变量的存储类别今日主题22016-12-10程序的内存区域C程序运行时所分配的内存分为四个区域:3程序代码(各函数代码块)全局数据、静态数据局部数据(函数参数与现场信息)动态数据(指针相关)程序内存空间代码区(codearea)全局数据区(dataarea)堆区(heaparea)栈区(stackarea)静态存储静态存储动态存储动态存储2016-12-106.7变量的作用域局部变量:在函数内部或复合语句内部定义的变量叫局部变量。函数被调用时,系统为局部变量分配存储空间,函数退出时,释放空间,局部变量消失;局部变量作用域:有效范围从定义点到函数尾或块尾。局部变量在定义时若不给出初始值,其值为不可知数。局部变量只在该函数内或复合语句内可见。全局变量在函数外部定义的变量称为全局变量。全局变量存储在全局数据区。全局变量作用域:有效范围从定义点到文件末尾。全局变量定义时,若不给出初始值,则系统自动初始化为0。42016-12-106.7变量的作用域5intn=5;//全局变量voidfun(){intn=6;//局部变量printf(%d\n,n);}voidmain(){intm=n;fun();printf(%d\n,n);}2016-12-106.7变量的作用域6#includestdio.hintprime(int);intmain(){inti,n;printf(输入正整数:);scanf(%d,n);if(n=0){printf(%d不是正整数\n,n);return0;}for(i=1;i=n;i++){if(prime(i))printf(%d是素数\n,i);}return0;}//判断n是否是素数//返回1--是,0--不是。intprime(intn){intd;for(d=2;d=n/2;d++)if(n%d==0)return0;return1;}[例6.10]编写函数判断某一整数是否为素数,然后调用该函数求输出从1到某一整数n之间的所有素数2016-12-106.7变量的作用域7//例6.11全局变量的使用#includestdio.hintnum;/*定义了一个全局整型变量*/voidmain(){voidoutput();voidinput();input();printf(thenumis:);output();}voidoutput(){printf(%3d\n,num);//访问全局变量num}voidinput(){printf(pleaseinputainteger:);scanf(%d,num);//访问全局变量num}2016-12-106.8变量的存储类别自动变量用关键字auto声明的变量叫自动变量。局部变量默认存储类别是auto,auto可以省略不写。auto仅在函数体内部有效。auto变量采取动态存储方式。函数调用时分配存储单元,生存期开始。函数调用结束时撤销其存储单元,生存期结束。8[例]autointx;2016-12-106.8变量的存储类别静态变量用关键字static声明。静态变量采用静态存储方式。静态变量在整个程序运行期间一直存在,值可保持。靜态变量定义时若未初始化,则系统默认初始化为0。靜态变量只初始化一次。静态局部变量只在函数内部可以访问。静态全局变量在本文件内可以访问。92016-12-106.8变量的存储类别静态变量10#includestdio.hvoidA(){ intx=10; x++; printf(x=%d\n,x);}voidB(){ staticinty=10; y++; printf(y=%d\n,y);}voidmain(){ A(); A(); B(); B(); return0;}x=11x=11y=11y=122016-12-106.8变量的存储类别静态变量11//例6.12静态变量的作用示例#includestdio.hintcoun(){staticintnumber=0;//静态变量的定义return++number;}voidmain(){inti;for(i=0;i!=10;++i){printf(%d\n,coun());//注意这里的输出结果的变化}}2016-12-106.8变量的存储类别外部变量使用关键字extern例如:externintx;externvoidabc(void);全局变量默认存储类别为extern,extern可以省略不写。extern变量采取静态存储方式。生存期从程序开始执行时建立,直到整个程序运行结束。extern能把另一个文件中定义的外部变量的作用域扩展到本文件。extern可以扩展本文件内全局变量的作用域。122016-12-10extern
您可能关注的文档
- 外饰件注塑及相关工艺开发.doc
- 多元函数微分学的应用.ppt
- 多元函数的连续与极限.ppt
- 外部空间的行为.ppt
- 多元线性回归方程的检验、预测.ppt
- 多元统计分析002 第二章 多元正态分布.ppt
- 多功能数字时钟电路设计与制作.docx
- 多功能数字时钟课程设计.doc 25号.doc
- 多光谱行人检测.docx
- 多功能显示器操作手册.doc
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- 初中英语阅读教学中的批判性思维培养与实践教学研究课题报告.docx
- 【2020第十届全国高中青年数学教师赛课】B12浙江-李雪纯-教学课件-停车距离问题.pptx VIP
- 2025年最新化学教资案例题目及答案.doc VIP
- 《医疗人员职业防护》课件.ppt VIP
- Samsung三星门锁SHP-DP738用户手册.pdf
- 21教招FB-河南-学霸作业-普通心理学1(讲义笔记)(瓜妹笑笑).pdf VIP
- 财务管理第四版课后习题答案宋秋萍高等教育出版社.pdf VIP
- 李白《赠孟浩然》课件.ppt VIP
- 超星尔雅学习通【俄国近代思想史(北京师范大学)】章节测试附答案.docx VIP
- 精品课件-四渡赤水.ppt VIP
原创力文档


文档评论(0)