大学c语言课件13-作用域.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

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

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

1亿VIP精品文档

相关文档