第13章 用户标识符的作用域.ppt

第13章 用户标识符的作用域.ppt

ID:48243488

大小:93.00 KB

页数:21页

时间:2020-01-18

第13章  用户标识符的作用域.ppt_第1页
第13章  用户标识符的作用域.ppt_第2页
第13章  用户标识符的作用域.ppt_第3页
第13章  用户标识符的作用域.ppt_第4页
第13章  用户标识符的作用域.ppt_第5页
资源描述:

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

1、第十三章用户标识符的作用域和存储类第一节变量的分类及其作用域和生存期第二节局部变量第三节全局变量第四节函数的存储分类第一节变量的分类及其作用域和生存期1.1变量的分类1.2变量的作用域和生存期总目录1.1 变量的分类局部变量变量全局变量局部变量floatfun(inta){intm;…if(m>0){intn=0;…}}在函数内部或复合语句内部定义的变量。函数内定义复合语句内定义全局变量intm=1,n=5;floatfun(inta){intb,c;…}charc1,c2;main(){intx,y;…}在函数外部定义的变量分目录局部变量全局变量1.

2、2 变量的作用域和生存期floatfun(inta){intm;…if(m>0){intn=0;…}}作用域:函数体内部(从变量定义位置开始到函数最后位置)。?思考n执行到定义位置开始生存执行到函数最后位置或return结束生存期生存期a的作用域作用域和生存期作用域:变量的有效范围生存期:程序运行过程中变量所代表单元生存的时间2)从生存期角度1)从作用域角度全局变量局部变量静态存储方式动态存储方式两种存贮方式静态存贮方式:在整个程序运行期间分配固定的存储空间的方式。其生存期为整个程序执行期间。(全局变量、静态局部变量)动态存贮方式:在程序运行期间根据需

3、要进行动态分配存储空间的方式。其生存期一般只是整个程序执行期间的一部分。(自动类局部变量)分目录第二节局部变量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)r

4、egisterinta;或intregistera;2)register变量放在cpu的寄存器中,不能进行求地址运算。auto变量放在内存中。3)一个计算机CPU的寄存器数目有限,不能定义任意多个寄存器变量。4)生存期、作用域:同auto类。分目录2.3静态类局部变量voidfun(floata){inti;staticinta;…}main(){…………………..}i自动类局部变量作用域:定义位置起到fun函数结束位置生存期:定义时刻起到fun函数结束时刻a静态类局部变量作用域:定义位置起到fun函数结束位置生存期:整个程序执行期间。相同不同stat

5、icinta;相当于staticinta=0;比较静态局部变量和自动类局部变量main(){intm=2,k;for(k=0;k<3;k++)printf(“%d”,fun(m));}fun(inta){intb=0;staticintc=3;b=b+1;c=c+1;return(a+b+c);}第三节 全局变量3.1全局变量的作用域和生存期3.2用extern扩展全局变量作用域3.3用static固定全局变量作用域总目录3.1全局变量的作用域和生存期inti;main(){ints;……i++;……}ints;intfun(){……i++;s=1……

6、}变量i的作用域:覆盖main及fun函数。变量s的作用域:仅覆盖fun函数。全局变量作用域:从定义位置到整个程序结束位置。全局变量的生存期inti;main(){ints;……i++;……}ints;intfun(){……i++;s=1……}变量i的生存期:从定义时刻到整个程序结束时刻。变量s的生存期:从定义时刻到整个程序结束时刻。全局变量生存期:从定义时刻到整个程序结束时刻。全局变量和局部变量重名intm=12;fun(intx,inty){intm=3;return(x*y+m);}main(){inta=7,b=4;printf(“%d”,

7、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”扩展到“文件

8、2”“inta;”与“externinta”不同。分目录3.3 用static固定全局变量作用

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

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

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