变量的作用域与生存期.ppt

变量的作用域与生存期.ppt

ID:58354650

大小:372.81 KB

页数:19页

时间:2020-09-07

变量的作用域与生存期.ppt_第1页
变量的作用域与生存期.ppt_第2页
变量的作用域与生存期.ppt_第3页
变量的作用域与生存期.ppt_第4页
变量的作用域与生存期.ppt_第5页
资源描述:

《变量的作用域与生存期.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、变量的作用域与生存期作用域与生存期概述变量的作用域(空间特性)变量的作用域也称为可见性,指变量能够被访问的范围分为局部变量和全局变量两类:局部变量的范围较窄,限定在程序中的部分区域;全局变量的范围较宽,可以是整个文件甚至是整个程序变量的存储类别(时间特性)除作用域(可见性)外的另外两个特性:变量存放在计算机何处,变量何时存在—存储类别变量存在的位置:RAM或CPU寄存器RAM划分:代码区、静态存储区、动态存储区存储类别:RAM:static、auto,CPU:register代码区静态存储区动态存储区全局变量、局部静

2、态变量形参变量局部动态变量(autoregister)函数调用现场保护和返回地址等内部变量局部变量---内部变量定义:在函数内或复合语句内定义,只在本函数内或复合语句内有效说明:main中定义的变量只在main中有效不同函数中同名变量,占不同内存单元形参属于局部变量可定义在复合语句中有效的变量局部(空间特性)变量可用存储类型(时间特性):autoregisterstatic(默认为auto,可省略)floatf1(inta){intb,c;…….}charf2(intx,inty){inti,j;……}main(){

3、intm,n;…….}a,b,c有效x,y,i,j有效m,n有效voidsub(){inta,b;a=6;b=7;printf("sub:a=%d,b=%d",a,b);}voidmain(){inta,b;a=3;b=4;printf("main:a=%d,b=%d",a,b);sub();printf("main:a=%d,b=%d",a,b);}#defineN5voidmain(){inti;inta[N]={1,2,3,4,5};for(i=0;i

4、[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i

5、放占用的内存空间。自动变量用的最多,不会永久占用内存空间。#includemain(){autointa,b,c;a=1,b=2;c=add(a,b);/*创建add形参和局部变量*/{floatx=c;printf("x=%f",x);}printf("c=%d",c);}intadd(intx,inty){intz;z=x+y;return(z);}a,b,c有效x,y,z有效x有效寄存器变量格式:register类型变量名列表;for(registerinta=0;a<1000000;a++)

6、寄存器变量存在于cpu内部的寄存器中,数量很少,一般是将循环使用很多次的变量放在寄存器中,加快执行速度。注意:只有整型变量能放在寄存器中,包括:int、char、short、long等。寄存器变量必须是auto类型的局部变量、形参,不能是全局变量或静态变量。由于寄存器数量很少,不能保证定义的寄存器变量总是能分配到寄存器,这时作为普通变量。对于寄存器变量,不能做取地址(&)运算。例使用寄存器变量intfac(intn){registerinti,f=1;for(i=1;i<=n;i++)f=f*i;return(f);

7、}voidmain(){inti;for(i=1;i<=1000;i++)printf(“%d!=%d”,i,fac(i));}1、只有局部自动变量和形式参数可以作为寄存器变量2、不能定义任意多个寄存器变量3、局部静态变量不能定义为寄存器变量静态内部变量格式:static类型变量名列表;staticinta;形参不能是定义成static。内部变量定义成static后,作用域不变,但生存期变长,在整个程序执行前就存在,直到程序结束才清除掉,其生存期为整个程序的运行期。使用注意:静态变量只初始化一次。静态变量的值具有

8、“记忆”性。尽管生存期变长,但作用域(可见性)仍然局限在定义它的局部范围内。voidmain(){inti;for(i=0;i<3;i++)inc1();for(i=0;i<3;i++)inc2();}例静态内部变量的生存期#includevoidinc1(){intx=0;x++;printf("ininc1x=%d",

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。