例 对 include<iostream. h> 象的生存期 nti=5;∥文件作用域 int maino cout<<i="<<i<<endl eturn 0 i具有静态生存期 了一页休息
前一页 休息 11 #include<iostream.h> int i=5; //文件作用域 int main() { cout<<"i="<<i<<endl; return 0; }i具有静态生存期 对象的生存期 例
动态生存期 对 象的生存 ●块作用域中声明的对象是动态生存期 的对象(习惯称局部生存期对象)。 期开始于程序执行到声明点时,结束于 命名该标识符的作用域结束处。 大 休息
前一页 休息 12 动态生存期 ⚫ 块作用域中声明的对象是动态生存期 的对象(习惯称局部生存期对象)。 ⚫ 开始于程序执行到声明点时,结束于 命名该标识符的作用域结束处。 对 象 的 生 存 期
例 对 include<iostream. h> void fun(; 象的生存期 void main( 运行结果 funo funO i=6.a=2 void funo i=6.a=3 i static int a=1 int i=5 i是动态生存期 a++ a是静态生存期 cout<<"i="<<<<",a="<<a<<endl: 休息
前一页 休息 13 #include<iostream.h> void fun(); void main() { fun(); fun(); } void fun() { static int a=1; int i=5; a++; i++; cout<<"i="<<i<<",a="<<a<<endl; } 运行结果: i=6, a=2 i=6, a=3 i是动态生存期 a是静态生存期 对 象 的 生 存 期 例
例5-2变量的生存期与可见性 对 Include<iostream.h> 象int=1;∥i为全局变量,具有静态生存期。 的 void main(void) 生(tm:D寿局部变量,态在可见 存 int C=0: void other(void) 期cout<< MAIN--n cout<<"i:"<<ik<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl; C=C+8; other( cout<<---MAIN---In cout<"i:"<<i<"a:"<<a<<"b:"<<b<<"c:"<<c<<end; =i+10; other(; 休息
前一页 休息 14 例5-2 变量的生存期与可见性 #include<iostream.h> int i=1; // i 为全局变量,具有静态生存期。 void main(void) { static int a; // 静态局部变量,有全局寿命,局部可见。 int b=-10; // b, c为局部变量,具有动态生存期。 int c=0; void other(void); cout<<"---MAIN---\n"; cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl; c=c+8; other(); cout<<"---MAIN---\n"; cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl; i=i+10; other(); } 对 象 的 生 存 期
void other(void) static int a=2. static int b; ∥la,b为静态局部变量,具有全局寿命,局部可见。 ∥)第一次进入函数时被初始化。 ntc=10;∥C为局部变量,具有动态生存期, ∥每次进入函数时都初始化。 a=a+2;i=i+32;c=c+5 cout<<"---OTHER---In cout<<"i:"<i<<"a:"<<a<<"b:"<<b<<"c "<<c<<end|
void other(void) { static int a=2; static int b; // a,b为静态局部变量,具有全局寿命,局部可见。 //只第一次进入函数时被初始化。 int c=10; // C为局部变量,具有动态生存期, //每次进入函数时都初始化。 a=a+2; i=i+32; c=c+5; cout<<"---OTHER---\n"; cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl; b=a; }