欢迎来到天天文库
浏览记录
ID:41059337
大小:292.34 KB
页数:25页
时间:2019-08-15
《面向对象程序设计语言(II)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章C++程序的结构丘志杰电子科技大学计算机学院软件学院6.1变量的类型除了按数据类型区分变量外,根据变量定义的位置,可以把变量分成全局变量与局部变量。全局变量是指定义在函数体外部的变量,它能被所有函数使用。局部变量是指定义在函数或复合语句中的变量,只能在函数或复合语句中使用。intg=100000;intsum(intx,inty){intsum=0;for(inti=x;i<=y;i++)sum=sum+i;returnsum;}voidmain(){intx=1,y=100;cout<2、8910111213g为全局变量sum()中x、y为局部变量main()中的x、y为局部变量6.1.2变量的存储类型C++中变量有auto、extern、register、static四种存储类型。1.auto说明符auto说明符说明定义的是一个局部变量。局部变量默认存储类型为auto,所以在程序中很少使用auto说明符说明。2.register说明符register说明符在定义变量时说明此变量存储在CPU中的寄存器中,以加快存取速度。一般编译器自己选择几个变量采用寄存器存储,不需要在程序中声明。3.extern说明符如果一个完整的计算机程序很3、大,分成多个模块,放在不同的文件中,分开编译成目标文件,最后连接成一个完整的可执行代码。对于所有模块共同使用的全局变量,如果在所有的模块中都定义,在连接时就会出错。解决办法是只在一个模块中定义全局变量,在其他模块中用extern说明这是一个“外来”的全局变量。/****************************p6_1_p.cpp**主程序****************************/#includeusingnamespacestd;externvoidp1dispG();externvoidp2disp4、G();externvoidp2dispg();intG=0,g=0;voidmain(){p1dispG();p2dispG();p2dispg();cout<<"inpG="<usingnamespacestd;externintG;voidp1dispG(){G=11;cout<<"inp1G="<5、p#includeusingnamespacestd;externintG;externintg;voidp2dispG(){G=22;cout<<"inp2G="<6、格式为:static可用来声明全局静态变量和局部静态变量。当声明全局静态变量时,全局静态变量只能供本模块使用,不能被其它模块再声明为extern变量。例如:将程序p6_1_p.cpp中的全局变量声明为:staticintG=0;那么在其他模块中就不能声明为:externintG;//错误,G已经是一个static变量;static数据类型变量名=初值;注意:当一个局部变量声明为static变量,它既具有局部变量的性质:只能在函数体局部存取;又具有全局变量的性质:函数多次进入,变量的值只初始化一次。因此静态局部变量实质是一个供函数局部存取的全局变7、量。/***********************************6_2.cpp**静态局部变量的使用***********************************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m="<8、n=2m=1n=3m=1n=46.1.2变量的存储类型static型变量静态局部变量n只是在函数fun()第一次进入时初始化0,随后每次进入不再赋初值
2、8910111213g为全局变量sum()中x、y为局部变量main()中的x、y为局部变量6.1.2变量的存储类型C++中变量有auto、extern、register、static四种存储类型。1.auto说明符auto说明符说明定义的是一个局部变量。局部变量默认存储类型为auto,所以在程序中很少使用auto说明符说明。2.register说明符register说明符在定义变量时说明此变量存储在CPU中的寄存器中,以加快存取速度。一般编译器自己选择几个变量采用寄存器存储,不需要在程序中声明。3.extern说明符如果一个完整的计算机程序很
3、大,分成多个模块,放在不同的文件中,分开编译成目标文件,最后连接成一个完整的可执行代码。对于所有模块共同使用的全局变量,如果在所有的模块中都定义,在连接时就会出错。解决办法是只在一个模块中定义全局变量,在其他模块中用extern说明这是一个“外来”的全局变量。/****************************p6_1_p.cpp**主程序****************************/#includeusingnamespacestd;externvoidp1dispG();externvoidp2disp
4、G();externvoidp2dispg();intG=0,g=0;voidmain(){p1dispG();p2dispG();p2dispg();cout<<"inpG="<usingnamespacestd;externintG;voidp1dispG(){G=11;cout<<"inp1G="<5、p#includeusingnamespacestd;externintG;externintg;voidp2dispG(){G=22;cout<<"inp2G="<6、格式为:static可用来声明全局静态变量和局部静态变量。当声明全局静态变量时,全局静态变量只能供本模块使用,不能被其它模块再声明为extern变量。例如:将程序p6_1_p.cpp中的全局变量声明为:staticintG=0;那么在其他模块中就不能声明为:externintG;//错误,G已经是一个static变量;static数据类型变量名=初值;注意:当一个局部变量声明为static变量,它既具有局部变量的性质:只能在函数体局部存取;又具有全局变量的性质:函数多次进入,变量的值只初始化一次。因此静态局部变量实质是一个供函数局部存取的全局变7、量。/***********************************6_2.cpp**静态局部变量的使用***********************************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m="<8、n=2m=1n=3m=1n=46.1.2变量的存储类型static型变量静态局部变量n只是在函数fun()第一次进入时初始化0,随后每次进入不再赋初值
5、p#includeusingnamespacestd;externintG;externintg;voidp2dispG(){G=22;cout<<"inp2G="<6、格式为:static可用来声明全局静态变量和局部静态变量。当声明全局静态变量时,全局静态变量只能供本模块使用,不能被其它模块再声明为extern变量。例如:将程序p6_1_p.cpp中的全局变量声明为:staticintG=0;那么在其他模块中就不能声明为:externintG;//错误,G已经是一个static变量;static数据类型变量名=初值;注意:当一个局部变量声明为static变量,它既具有局部变量的性质:只能在函数体局部存取;又具有全局变量的性质:函数多次进入,变量的值只初始化一次。因此静态局部变量实质是一个供函数局部存取的全局变7、量。/***********************************6_2.cpp**静态局部变量的使用***********************************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m="<8、n=2m=1n=3m=1n=46.1.2变量的存储类型static型变量静态局部变量n只是在函数fun()第一次进入时初始化0,随后每次进入不再赋初值
6、格式为:static可用来声明全局静态变量和局部静态变量。当声明全局静态变量时,全局静态变量只能供本模块使用,不能被其它模块再声明为extern变量。例如:将程序p6_1_p.cpp中的全局变量声明为:staticintG=0;那么在其他模块中就不能声明为:externintG;//错误,G已经是一个static变量;static数据类型变量名=初值;注意:当一个局部变量声明为static变量,它既具有局部变量的性质:只能在函数体局部存取;又具有全局变量的性质:函数多次进入,变量的值只初始化一次。因此静态局部变量实质是一个供函数局部存取的全局变
7、量。/***********************************6_2.cpp**静态局部变量的使用***********************************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m="<8、n=2m=1n=3m=1n=46.1.2变量的存储类型static型变量静态局部变量n只是在函数fun()第一次进入时初始化0,随后每次进入不再赋初值
8、n=2m=1n=3m=1n=46.1.2变量的存储类型static型变量静态局部变量n只是在函数fun()第一次进入时初始化0,随后每次进入不再赋初值
此文档下载收益归作者所有