第12章 C语言中用户标识符的作用域和存储类.ppt

第12章 C语言中用户标识符的作用域和存储类.ppt

ID:48243333

大小:176.50 KB

页数:11页

时间:2020-01-18

第12章  C语言中用户标识符的作用域和存储类.ppt_第1页
第12章  C语言中用户标识符的作用域和存储类.ppt_第2页
第12章  C语言中用户标识符的作用域和存储类.ppt_第3页
第12章  C语言中用户标识符的作用域和存储类.ppt_第4页
第12章  C语言中用户标识符的作用域和存储类.ppt_第5页
资源描述:

《第12章 C语言中用户标识符的作用域和存储类.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第12章C语言中用户标识符的作用域和存储类对变量的进一步讨论12.1局部变量、全局变量和存储分类12.2局部变量及其作用域和生存期12.3全局变量及其作用域和生存期12.4函数的存储分类按类型整形变量实型变量字符变量按有效范围(作用域)局部变量全局变量按生存期(存储类别)auto变量static变量局部变量1。在一个函数内部定义的变量。#includefloatf1(intn){inti,j;..........}charf2(floatx,floaty){floatz;..........}main(){inta,b,c;

2、..........}i,j的有效范围z的有效范围a,b,c的有效范围2。函数的形式参数。3。在某个复合语句中定义的变量n的有效范围x,y的有效范围#includemain(){inta,b,c;..........{intc;.........c=a+b;.........}}c的有效范围复合语句中的变量c和函数体中的c互不影响,在符合语句中的变量都有自己的存储单元。全局变量#includeintp=1,q=5;floatf1(inta){intb;.......}intf2(inta){intb;...

3、....}main(){intm,n;..........}全局变量就是指在函数体之外定义的变量。全局变量的有效范围是:从定义变量的位置开始到原文件结束。p,q的有效范围auto变量当在函数内部或复合语句内定义变量时,也可以使用auto说明符进行说明。用auto说明的变量,当该变量退出它的有效范围时,系统将自动释放该变量所占的存储单元。例如:#includedoubleadd(doublea,doubleb){autodoubles;s=a+b;returns;}main(){doubley,p,q;scanf(“%lf%l

4、f”,&p,&q);y=add(p,q);printf(“%f”,y);}退出该函数时,局部变量a,b和s都自动释放,在这里,我们说明了变量s为auto型,所以也会自动释放。再此,我们也可以把auto省略。register变量寄存器变量与auto变量基本上相同,它们之间还是存在一些区别的:用register说明的变量建议编译程序将变量的值保留在CPU的寄存器中,而不是像一般变量那样,占内存空间。例如:#includeintpower(int,registerint);main(){ints;s=power(5,3);prin

5、tf("%d",s);}intpower(intx,registerintn){registerintp;for(p=1;n;n--)p=p*x;returnp;}特点★使用寄存器变量,程序运行时,访问存储器内的值要比访问存于内存中的值快得多。★CPU中的寄存器的数目是有限的,因此只能说明少量的寄存器变量。★register变量无地址。★尽量少用register变量。static变量例如:#includefloatfac(intn){staticfloatf=1;f=f*n;returnf;}main(){intj;fo

6、r(j=1;j<=5;j++)printf("%d!=%.0f",j,fac(j));}此条语句是在编译时进行的并赋初值,此条语句程序不会执行它;如果定义局部静态变量时没有赋初值,编译时会自动赋初值。用static说明的变量,在退出整个程序时,才释放内存空间。1!=12!=23!=64!=245!=120如有以下程序 inta=2; intf(intn) {staticinta=3;  intt=0; if(n%2){staticinta=4;t+=a++;} else{staticinta=5;t+=a++;}

7、returnt+a++; } main() {ints=a,i; for(i=0;i<3;i++)s+=f(i); printf("%d",s); } 程序运行后的输出结果是 A)26B)28C)29D)24extern说明符的作用当在同一个文件中时使用#includeintp;voidf1(intn){ints=1;........}main(){inta,b,c;........}的有效范围p#includevoidf1(intn){intp=1;........

8、}intp;main(){inta,b,c;........}的有效范围p局部变量p的有效范围#includevoidf1(intn){exter

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

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

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