十九、C++程序设计必知:生存期

来源:互联网 发布:c语言求真值表 编辑:程序博客网 时间:2024/06/04 18:39
和自然办的事物一样,程序中的变量和对象等也有生存期,从产生到消亡。生存期主要有两种,静态和动态。1、静态生存期某个对象的生存时间和程序运行期相同,我们就说它具有静态生存期。很明显文件域的对象具有静态生存期。使用块作用域具有静态生存期的方法,加static关键字修饰。 2、动态生存期除开上面的静态生存期,其余对象具有动态生存期。具有动态生存期的对象产生于声明处,于对象作用域处结束。
<pre name="code" class="cpp">#include<iostream>using namespace std;int a=1;  //全局变量,静态生存期void fun();int main(){static int x; //静态生存期,局部可见性,默认初始化为0int y=10;cout<<"main:"<<endl;cout<<"a:"<<a<<" "<<"x:"<<x<<" "<<"y:"<<y<<endl;a=a+1;fun();    x=x+1;cout<<"main:"<<endl;cout<<"a:"<<a<<" "<<"x:"<<x<<" "<<"y:"<<y<<endl;fun();return 0;}void fun(){static int x=2; //静态生存期,局部可见性,与主函数中的x无关//x只在第一次进入函数时初始化,之后就延用最后调用的值int y=3;  //动态生存期 每次都初始化y=y+3;a=a+2;x=x+10;cout<<"fun:"<<endl;cout<<"a:"<<a<<" "<<"x:"<<x<<" "<<"y:"<<y<<endl;}main:a:1 x:0 y:10    //a一直在变化,经main和fun累加fun:a:4 x:12 y:6main:a:4 x:1 y:10    //主函数x随主函数运算变化fun:a:6 x:22 y:6    //fun函数x二次累加基于fun第一次的12 具有静态生存期和局部可见性 y值重新赋值计算


                                             
0 0
原创粉丝点击