资源描述:
《第22次(变量的存储类别)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ITEducation&TrainingNeusoftInstituteofInformationDate:18九月2021办公室:C7座201EMAIL:huang.w@neusoft.com课件下载网址:ftp://computer.dept.ccniit.com任课教师:黄伟第五章函数授课要点变量的存储类别问题#includevoidprt();main(){intx;for(x=1;x<=5;x++)prt();}voidprt(){staticinty=0;y++;printf("%d",y);
2、}输出结果:12345去掉static后的结果为多少?问题分析动态存储变量和静态存储变量动态变量:用auto关键字表示如autointp,f;//p,f为两个动态变量在C中,默认的变量定义就是定义为动态变量即上述的p,f变量定义与intp,f;是完全等价的。静态变量:在程序生存期内一直有效。注意,如果静态变量出现在函数中,不会因为函数的调用结束而丢失这个变量的值变量的生存期inta,b,c;//外部变量定义main(){intx,y;//内部变量floatf;//内部变量//其他语句…}intsum(intn){ints=
3、0,i;//内部变量//语句}x,y,f的有效区域s,i的有效区域a,b,c的有效区域内部变量与外部变量的作用区域是不一样的。1.变量的存储类型计算机的存储器分为内存和外存。还有一个小小的临时存储器称为寄存器,用以存储一些反复被加工的数据。C语言允许程序员区分是在主存还是在寄存器中开辟变量的存储空间。2.变量的生存期(1)在编译时分配存储单元。这种变量的生存期为程序执行的整个过程,在该过程中占有固定的存储空间,称为永久存储。(2)只在程序执行的某一段时间内存在。比如在函数的执行过程中存在。这种存储方式称为动态存储。小结小结
4、3.变量的可用域变量的可用域也分为全局可用和局部可用。C语言中,用“存储属性”来表示以上三个方面的属性,如表所示。名称寄存器变量自动变量静态变量外部变量存储属性registerautostaticextern存储位置寄存器主存生存期动态生存期永久生存期作用域局部局部或全局全局模仿练习1、写出以下程序的运行结果:intfun(inta)/*a为形参,自动型局部变量*/{autointb=0;/*b是自动型局部变量*/staticintc=3;/*c是静态型局部变量,初始化仅进行一次*/b+=1;c=c+1;returna+b
5、+c;}main(){inta=2,i;/*a和i都是自动型局部变量*/for(i=0;i<3;i++)printf("%dt",fun(a));}模仿练习2、写出以下程序的运行结果:intsum(intn);//函数声明inta=4,b=5,c=6;//外部变量定义main(){intx=1,y=2;floatf=3.0;x=sum(10);printf("x=%d,y=%d,f=%f",x,y,f);printf("a=%d,b=%d,c=%d",a,b,c);//printf("s=%d,i=%d",s
6、,i);}intsum(intn){ints=0,i;for(i=1;i<=n;i++)s=s+i;printf("s=%d,i=%d",s,i);printf("a=%d,b=%d,c=%d",a,b,c);//printf("x=%d,y=%d,f=%f",x,y,f);returns;}NeusoftInstituteofInformation办公室:C7座201EMAIL:huang.w@neusoft.com课件下载网址:ftp://computer.dept.ccniit.com