预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在C++语言中,由用户命名的标识符都有一个有效的作用域。(标识符:如变量名、函数名) 作用域:即作用范围,指所定义的标识符在哪一个区间内有效,可以被C++编译和连接程序所识别。 例如在函数sub()内定义的变量,不能在其他函数中引用;变量的作用域与其在程序中出现的部位有关。块作用域(局部变量) 文件作用域(全局变量或称外部变量) 函数原型作用域 函数作用域 类作用域 块:用花括号括起来的一部分称为一个块。 块作用域:在块内定义的标识符,其有效范围在块内。 局部变量:在块内定义的变量或在一个函数内部定义的变量。floatf1(inta)//函数f1 {intb,c; . . . } charf2(intx,inty)//函数f2 {intb,c; inti,j; . . . } voidmain()//主函数 {intm,n; . . . } #include<iostream.h> voidmain() {inta,b; cin>>a>>b; if(a>b){intt; t=a;a=b;b=t; } cout<<a<<b; } floatf1(inta) voidmain() {intb,c;{intm,n; . . . . . . }} charf2(intx,inty) {intb,c,d; . . . }全局变量:在函数外部定义的变量或用extern定义的变量,又被称为外部变量。 有效范围:从定义变量的位置开始到本源文件结束。 文件作用域:全局变量的有效范围称为文件作用域。inti=1,j=4; floatf(inta) {intb,c;…} charc1,c2; charg(intx,inty) {intk,l;...} main() {intm,n;…} #include<iostream> usingnamespacestd; inti=10; voidmain() { inti,j=5; i=20;//访问局部变量i ::i=::i+4;//访问全局变量i j=::i+i;//访问全局变量i和局部变量i、j cout<<"::i="<<::i<<endl; cout<<"i="<<i<<endl; cout<<"j="<<j<<endl; }函数原型说明:在定义函数之前调用函数,必须做函数原型说明。floatmax(intx,inty); floatmax(inta,intb);voidf1() {…… {label1:……} gotolabel1;//可以 ……. gotolabel2;//不可以 } voidf2() {label2:…..}外部变量可不在文件开头定义。 例:在程序末尾定义全局变量,如果在定义前使用它们,则必须做extern说明。 类似于函数原型说明。即,若自定义函数在主函数后面,则调用它之前必须进行原型说明。intmax(intx,inty) {intz; z=x>y?x:y; return(z); } voidmain() {externinta,b; intm; m=max(a,b); cout<<m<<'\n'; } inta=15,b=-8;根据变量的有效范围(作用域),将变量分为全局变量和局部变量。 根据变量的存储特性(生存期),将变量分为静态存储变量和动态存储变量。存储空间的分配局部变量和全局变量均要占据一定的存储单元,那么它们被分配在静态存储区中还是被分配在动态存储区中呢? 分配在不同的存储区中有什么特性呢?对比赋初值 静态变量在编译时确定其初值,只赋值一次。 动态变量赋初值是在进入作用域时进行的,每进入一次赋初值一次。 若用户定义变量时不赋初值,则: 对静态变量:编译时自动赋值为0。 对动态变量:是一个不确定的值。均为静态存储 缺省存储类别:extern 三种使用方式 在一个文件中说明全局变量 在多个文件中说明全局变量 用static说明全局变量一个完整的C++程序由多个函数组成,函数可以分散在多个源程序文件中。在每个源程序文件中,均可以定义全局变量,文件之间的变量有什么关系呢?全局变量的跨文件使用