标签:
参考引用自:
鸡啄米:C++编程入门系列之十九(C++程序设计必知:生存期)
若某个对象它的生存期与程序的运行期相同,我们就说它具有静态生存期,就是说在程序运行期间它都不会释放。
具有动态生存期的对象产生于声明处,于该对象的作用域结束处释放。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include<iostream> using namespace std; int a
= 1; //a为全局变量,它具有静态生存期 void fun( void ); int main(){ static int x; //
局部变量,具有静态生存期,可以叫做静态局部变量,局部可见。 int y
= 5; //
y,z为局部变量,具有动态生存期。 int z
= 1; cout
<< "--MAIN---\n" ; cout
<< "a:" <<
a << "
x:" <<
x << "
y:" <<
y << "
z:" <<
z << endl; z
= z + 2; fun(); cout
<< "---MAIN---\n" ; cout
<< "a:" <<
a << "
x:" <<
x << "
y:" <<
y << "
z:" <<
z << endl; a
= a + 10; fun(); return 0; } void fun( void ){ static int x
= 4; //
x,y为静态局部变量,具有全局寿命,局部可见。只有第一次进入函数时被初始化 static int y; int z
= 10; //
z为局部变量,具有动态生存期,每次进入函数时都初始化。 a
= a + 20; x
= x + 3; z
= z + 4; cout
<< "---FUN---\n" ; cout
<< "a:" <<
a << "
x:" <<
x << "
y:" <<
y << "
z:" <<
z << endl; y
= x; } /* --MAIN--- a:1
x:0 y:5 z:1 ---FUN--- a:21
x:7 y:0 z:14 ---MAIN--- a:21
x:0 y:5 z:3 ---FUN--- a:51
x:10 y:7 z:14 */ |
标签:
原文地址:http://blog.csdn.net/chenbingzhao/article/details/51330563