第13章用户标识符的作用域_第1页
第13章用户标识符的作用域_第2页
第13章用户标识符的作用域_第3页
第13章用户标识符的作用域_第4页
第13章用户标识符的作用域_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十三章用户标识符的作用域和存储类,第一节变量的分类及其作用域和生存期第二节局部变量第三节全局变量第四节函数的存储分类,第一节变量的分类及其作用域和生存期,1.1变量的分类1.2变量的作用域和生存期,总目录,1.1变量的分类,局部变量,在函数内部或复合语句内部定义的变量。,函数内定义,全局变量,intm=1,n=5;floatfun(inta)intb,c;charc1,c2;main()intx,y;,在函数外部定义的变量,分目录,1.2变量的作用域和生存期,作用域:函数体内部(从变量定义位置开始到函数最后位置)。,作用域和生存期,作用域:变量的有效范围生存期:程序运行过程中变量所代表单元生存的时间,2)从生存期角度,1)从作用域角度,全局变量,局部变量,静态存储方式,动态存储方式,两种存贮方式,静态存贮方式:在整个程序运行期间分配固定的存储空间的方式。其生存期为整个程序执行期间。(全局变量、静态局部变量)动态存贮方式:在程序运行期间根据需要进行动态分配存储空间的方式。其生存期一般只是整个程序执行期间的一部分。(自动类局部变量),分目录,第二节局部变量,2.1auto变量2.2register变量2.3静态类局部变量,所有局部变量的作用域都一样,但生存期不同。,总目录,2.1auto变量,如:floata;等价于:autofloata;或floatautoa;,1)auto可省略,2)auto变量属于自动类变量3)生存期:程序执行到定义位置开始,程序退出该变量所在的函数为止。,分目录,main()inta,b,c;.fun(float*p)inta;.,2.2register变量,1)registerinta;或intregistera;2)register变量放在cpu的寄存器中,不能进行求地址运算。auto变量放在内存中。3)一个计算机CPU的寄存器数目有限,不能定义任意多个寄存器变量。4)生存期、作用域:同auto类。,分目录,2.3静态类局部变量,voidfun(floata)inti;staticinta;main().,i,自动类局部变量,作用域:定义位置起到fun函数结束位置,生存期:定义时刻起到fun函数结束时刻,a,静态类局部变量,作用域:定义位置起到fun函数结束位置,生存期:整个程序执行期间。,staticinta;相当于staticinta=0;,比较静态局部变量和自动类局部变量,第三节全局变量,3.1全局变量的作用域和生存期3.2用extern扩展全局变量作用域3.3用static固定全局变量作用域,总目录,3.1全局变量的作用域和生存期,变量i的作用域:覆盖main及fun函数。,变量s的作用域:仅覆盖fun函数。,全局变量作用域:从定义位置到整个程序结束位置。,全局变量的生存期,变量i的生存期:从定义时刻到整个程序结束时刻。,变量s的生存期:从定义时刻到整个程序结束时刻。,全局变量生存期:从定义时刻到整个程序结束时刻。,全局变量和局部变量重名,intm=12;fun(intx,inty)intm=3;return(x*y+m);main()inta=7,b=4;printf(“%dn”,fun(a,b)/m);,在局部变量所在函数中,全局变量被屏蔽,局部变量有效。,分目录,3.2用extern扩展全局变量作用域一个文件内,fun1().fun2().inta;main().,externinta;fun1().fun2().inta;main().,用extern扩展全局变量作用域多个文件内,/*文件1:a.c*/inta;main(),/*文件2:b.c*/externinta;main().,a作用域由“文件1”扩展到“文件2”“inta;”与“externinta”不同。,分目录,3.3用static固定全局变量作用域,/*文件1:a.c*/staticinta;main(),/*文件2:b.c*/externinta;main().,static使变量a只能在文件1“a.c”中使用;变量a称为“静态全局变量”。,第四节函数的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论