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

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

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

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

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

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

第四章函数与预处理(2)4.11变量存储特性与标识符作用域cout<<func()<<endl; intfunc(); {cout<<func()<<endl; f2(10,23); //a,b的作用域从这里开始 staticb=3 staticintb=1; //静态变量 doublefunPrototype(doublex,doubley); cout<<func()<<endl; staticb=3 {intx=256; //main函数可以访问a,b,c cout<<"autoa="<<a<<endl;标识符作用域标识符作用域f2(10,23); 栈区(stackarea) } //内层的a作用域结束 cout<<func()<<endl; 降低程序清晰性,容易出错. staticintb=1; //静态变量 voidmain() voidmain() cout<<func()<<endl; #include<iostream. voidmain() voidmain() //例3静态变量与自动变量的测试 returna+b; returna+b; externcharc1,c2; cout<<"autoa="<<a<<endl;标识符作用域标识符作用域//例2使用文件作用域变量 #include<iostream.h> inta=1,b=1; voidf1(intx) {a=x*x; b=a*x; } intc; voidf2(intx,inty) {a=x>y?x:y; b=x<y?x:y; c=x+y; } voidmain() {f1(4); cout<<"callfunctionf1:\n"; cout<<"a="<<a<<",b="<<b<<endl; f2(10,23); cout<<"callfunctionf2:\n"; cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl; }标识符作用域intp=1,q=5; floatf1(inta) {intb,c; ……. } intf3() {….. } charc1,c2; charf2(intx,inty) {inti,j; …… } main() {intm,n; ……. }标识符作用域标识符作用域标识符作用域标识符作用域程序的内存区域程序的内存区域2存储特性//例3静态变量与自动变量的测试 #include<iostream.h> intfunc(); voidmain() {cout<<func()<<endl; cout<<func()<<endl; } intfunc() {inta=0; //自动变量 staticintb=1; //静态变量 a++; b++; cout<<"autoa="<<a<<endl; cout<<"staticb="<<b<<endl; returna+b; }//例3静态变量与自动变量的测试 #include<iostream.h> intfunc(); voidmain() {cout<<func()<<endl; cout<<func()<<endl; } intfunc() {inta=0; //自动变量 staticintb=1; //静态变量 a++; b++; cout<<"autoa="<<a<<endl; cout<<"staticb="<<b<<endl; returna+b; }//例3静态变量与自动变量的测试 #include<iostream.h> intfunc(); voidmain() {cout<<func()<<endl; cout<<func()<<endl; } intfunc() {inta=0; //自动变量 staticintb=1; //静态变量 a++; b++; cout<<"autoa="<<a<<endl; cout<<"staticb="<<b<<endl; returna+b; }//例3静态变量与自动变量的测试 #include<iostream.h> intfunc(); voidmain() {cout<<func()<<endl; cout<<func()<<endl; } intfunc() {inta=0;//自动变量 staticintb=1;//静态变量 a++; b++; cout<<"autoa="<<a<<endl; cout<<"staticb="<<b<<endl; returna+b; }//例3静态变量与自动变量的测试 #include<iostream.h> intfunc(); voidmain() {cout<<func()<<endl; cout<<func()<<endl; }