欢迎来到天天文库
浏览记录
ID:48804973
大小:296.50 KB
页数:47页
时间:2020-01-26
《江科大C++第五章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章作用域和编译预处理第5章作用域和编译预处理5.1作用域5.2存储类型5.3编译预处理10/4/2021作用域是指标识符的有效范围,变量的有效范围称为变量的作用域。所有的变量都有自己的作用域,作用域的范围由说明方式决定。VC++中的作用域共分为5类:块作用域、文件作用域、函数原型作用域、函数作用域和类作用域。对应的变量主要分为两种:局部变量和全局变量。5.1作用域10/4/20211、块作用域用一对花括号括起来的一部分程序称为一个块。在块内定义说明的变量,其作用域仅限于块内,离开该块后再使用这种变量是非法的。具有块作用域的变量是局部变量。例
2、如:voidf1(chara=10)//函数f1{intb=20;cout<3、)形参是属于被调函数的,一定为局部变量。(4)同一个函数的不同范围(块)内可定义同名的变量,其原则为局部优先。例如:5.1作用域10/4/2021#includevoidmain(){intk,i=2;k=i+3;//A{intk=8;//Bi+=4;cout<4、cludevoidmain(){…for(intx=0;x<10;x++){chary;…}//变量y的作用域结束…}//变量x的作用域结束5.1作用域10/4/2021说出下列程序中的错误:voidmain(){inta[3][4];for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];for(inti=0;i<3;i++){//Afor(intj=0;j<4;j++)//Bcout<5、改为:for(i=0;i<3;i++){for(j=0;j<4;j++)5.1作用域10/4/20212、文件作用域在函数外部定义的变量称为全局变量。全局变量的作用域称为文件作用域,其作用域是整个源程序。例如:#includeinta=5,b=10;//全局变量定义voidf1(){a=10;b=5;}voidmain(){f1();//若省略该语句,则输出?cout<6、,且同一变量只能定义一次,其定义格式为:数据类型变量名1,变量名2,…;可在程序的各个函数内使用全局变量,使用前应用extern进行说明,说明格式为:extern数据类型 变量名1,变量名2,…;(2)当全局变量的定义在使用之前时,可省略其说明。(3)全局变量在定义时就已经分配了内存单元,定义时可初始化(若不初始化,其缺省值为0),说明只是表明在函数内要使用某全局变量,不能再赋初始值。例如:5.1作用域10/4/2021#includevoidf1(){externinta,b;//全局变量说明,不可再赋初值cout<<7、a++<<‘t’<intf(intk,intw){externinth;//全局变量说明intv=k*w*h;returnv;}voidmain(8、){externintw,h;//全局变量说明intk=5;cout<<“v=”<
3、)形参是属于被调函数的,一定为局部变量。(4)同一个函数的不同范围(块)内可定义同名的变量,其原则为局部优先。例如:5.1作用域10/4/2021#includevoidmain(){intk,i=2;k=i+3;//A{intk=8;//Bi+=4;cout<4、cludevoidmain(){…for(intx=0;x<10;x++){chary;…}//变量y的作用域结束…}//变量x的作用域结束5.1作用域10/4/2021说出下列程序中的错误:voidmain(){inta[3][4];for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];for(inti=0;i<3;i++){//Afor(intj=0;j<4;j++)//Bcout<5、改为:for(i=0;i<3;i++){for(j=0;j<4;j++)5.1作用域10/4/20212、文件作用域在函数外部定义的变量称为全局变量。全局变量的作用域称为文件作用域,其作用域是整个源程序。例如:#includeinta=5,b=10;//全局变量定义voidf1(){a=10;b=5;}voidmain(){f1();//若省略该语句,则输出?cout<6、,且同一变量只能定义一次,其定义格式为:数据类型变量名1,变量名2,…;可在程序的各个函数内使用全局变量,使用前应用extern进行说明,说明格式为:extern数据类型 变量名1,变量名2,…;(2)当全局变量的定义在使用之前时,可省略其说明。(3)全局变量在定义时就已经分配了内存单元,定义时可初始化(若不初始化,其缺省值为0),说明只是表明在函数内要使用某全局变量,不能再赋初始值。例如:5.1作用域10/4/2021#includevoidf1(){externinta,b;//全局变量说明,不可再赋初值cout<<7、a++<<‘t’<intf(intk,intw){externinth;//全局变量说明intv=k*w*h;returnv;}voidmain(8、){externintw,h;//全局变量说明intk=5;cout<<“v=”<
4、cludevoidmain(){…for(intx=0;x<10;x++){chary;…}//变量y的作用域结束…}//变量x的作用域结束5.1作用域10/4/2021说出下列程序中的错误:voidmain(){inta[3][4];for(inti=0;i<3;i++)for(intj=0;j<4;j++)cin>>a[i][j];for(inti=0;i<3;i++){//Afor(intj=0;j<4;j++)//Bcout<5、改为:for(i=0;i<3;i++){for(j=0;j<4;j++)5.1作用域10/4/20212、文件作用域在函数外部定义的变量称为全局变量。全局变量的作用域称为文件作用域,其作用域是整个源程序。例如:#includeinta=5,b=10;//全局变量定义voidf1(){a=10;b=5;}voidmain(){f1();//若省略该语句,则输出?cout<6、,且同一变量只能定义一次,其定义格式为:数据类型变量名1,变量名2,…;可在程序的各个函数内使用全局变量,使用前应用extern进行说明,说明格式为:extern数据类型 变量名1,变量名2,…;(2)当全局变量的定义在使用之前时,可省略其说明。(3)全局变量在定义时就已经分配了内存单元,定义时可初始化(若不初始化,其缺省值为0),说明只是表明在函数内要使用某全局变量,不能再赋初始值。例如:5.1作用域10/4/2021#includevoidf1(){externinta,b;//全局变量说明,不可再赋初值cout<<7、a++<<‘t’<intf(intk,intw){externinth;//全局变量说明intv=k*w*h;returnv;}voidmain(8、){externintw,h;//全局变量说明intk=5;cout<<“v=”<
5、改为:for(i=0;i<3;i++){for(j=0;j<4;j++)5.1作用域10/4/20212、文件作用域在函数外部定义的变量称为全局变量。全局变量的作用域称为文件作用域,其作用域是整个源程序。例如:#includeinta=5,b=10;//全局变量定义voidf1(){a=10;b=5;}voidmain(){f1();//若省略该语句,则输出?cout<6、,且同一变量只能定义一次,其定义格式为:数据类型变量名1,变量名2,…;可在程序的各个函数内使用全局变量,使用前应用extern进行说明,说明格式为:extern数据类型 变量名1,变量名2,…;(2)当全局变量的定义在使用之前时,可省略其说明。(3)全局变量在定义时就已经分配了内存单元,定义时可初始化(若不初始化,其缺省值为0),说明只是表明在函数内要使用某全局变量,不能再赋初始值。例如:5.1作用域10/4/2021#includevoidf1(){externinta,b;//全局变量说明,不可再赋初值cout<<7、a++<<‘t’<intf(intk,intw){externinth;//全局变量说明intv=k*w*h;returnv;}voidmain(8、){externintw,h;//全局变量说明intk=5;cout<<“v=”<
6、,且同一变量只能定义一次,其定义格式为:数据类型变量名1,变量名2,…;可在程序的各个函数内使用全局变量,使用前应用extern进行说明,说明格式为:extern数据类型 变量名1,变量名2,…;(2)当全局变量的定义在使用之前时,可省略其说明。(3)全局变量在定义时就已经分配了内存单元,定义时可初始化(若不初始化,其缺省值为0),说明只是表明在函数内要使用某全局变量,不能再赋初始值。例如:5.1作用域10/4/2021#includevoidf1(){externinta,b;//全局变量说明,不可再赋初值cout<<
7、a++<<‘t’<intf(intk,intw){externinth;//全局变量说明intv=k*w*h;returnv;}voidmain(
8、){externintw,h;//全局变量说明intk=5;cout<<“v=”<
此文档下载收益归作者所有