标识符的作用域ppt课件.ppt

标识符的作用域ppt课件.ppt

ID:59109005

大小:48.00 KB

页数:22页

时间:2020-09-25

标识符的作用域ppt课件.ppt_第1页
标识符的作用域ppt课件.ppt_第2页
标识符的作用域ppt课件.ppt_第3页
标识符的作用域ppt课件.ppt_第4页
标识符的作用域ppt课件.ppt_第5页
资源描述:

《标识符的作用域ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、§4.4标识符的作用域标识符的作用域1)定义:标识符的作用域是指标识符在程序中的可见范围。2)标识符的块作用域块:函数中用"{","}"括住的区域。一个块允许嵌套另一块。在语法上,一个块可作为一个单语句使用,称为“块语句”,又称“复合语句”。3)标识符作用域的例子:voidfunc(intx){inty=x+1;{inty=x+2;intz=x+3;y=y*y;z=z*z;cout<

2、中都可以使用x这个变量。虽然在外层块中“inty=x+1;"声明了变量y,但紧接着的嵌套块中又用了”inty=x+2;"声明了同名变量y,因而在嵌套块中出现的y都是指内层声明的y,对y的赋值不会影响到外层的y。在嵌套块中,由于引入了同名变量y而将外层y的作用域屏蔽了。在嵌套块结束标记"}"与下一条声明语句"intz=x+4;"之间我们不能使用标识符z,因为嵌套块中声明的z的作用域已经结束,而外层的z的作用域尚未开始。如果在主函数main()中以func(5)调用该函数,则屏幕输出结果为:5496451218总结:①在不同块内(函数内)出现同名标识符时的处理:如果块不嵌套,则相互独立。如

3、果块出现嵌套,则在嵌套的最里层,本块定义的同名标识符可见。根据“块作用域”含义,一个块(函数)内定义的标识符在本块结束后即自动消失(被系统回收)。②编译如何处理不同块(嵌套/不嵌套)定义的同名标识符不嵌套时,在各块分别分配单元,相互独立。嵌套时,编译仍视为二个不同标识符单独分配单元。4)::运算符在内、外层出现同名标识符而又要在里层访问外层同名标识符就要利用作用域运算符::使用形式为::标识符,表示访问外面一层同名标识符。例子:Inty=8;Voidfunc(intx){inty=x+1;::y=::y*y;cout<

4、3);cout<

5、自动收回。不足:只有局部作用域。④处理:标识符要尽可能避免同名!!2)全局变量①含义:在文件作用域中定义的变量称全局变量。②定义形式:在函数之外定义。③作用域:从定义之位置起到文件末尾(或有特别注明注销处)。而另外一个文件加以声明(引用性说明extern)也能引用全局变量。④优点与缺点优点:作用域大,使用方便。缺点:全局变量具有副作用:当在函数中出现了对全局变量的错误修改时,其它凡使用到这全局变量的地方却全无知觉,用户要费很大劲才能发现。全局变量增加了函数之间的联系,降低了函数的独立性,导致函数难于理解且难于重复使用。⑤处理:慎用全局变量全局变量使用举例通过全局变量传递参数之例。输入年

6、号y,判别它是否是闰年。(采用全局变量传递参数)#includeintyear,leap,remainder;       //全局参数//year表示年,leap表示是否是闰年,//是闰年为1,不是闰年为0;remainder表示year%4之结果voidisLeap()                   //访问到三个全局变量{if(remainder==0)leap=0;elseif((year%100==0)&&(year%400!=0))leap=0;elseleap=1;}                 //访问全局变量year,remainde

7、r,leapvoidmain(){cout<<"Entertheyear:";cin>>year;                      //输入年remainder=year%4;isLeap();if(leap)cout<<"Theyear"<

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

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

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