码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-05-07 10:47:28      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

参考引用自:

鸡啄米:C++编程入门系列之十九(C++程序设计必知:生存期)

1、静态生存期

若某个对象它的生存期与程序的运行期相同,我们就说它具有静态生存期,就是说在程序运行期间它都不会释放。

a、具有文件作用域的对象都具有静态生存期。

b、使用关键字static修饰的变量,也就是静态变量具有静态生存期

2、动态生存期

具有动态生存期的对象产生于声明处,于该对象的作用域结束处释放。

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
*/


技术分享


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

标签:

原文地址:http://blog.csdn.net/chenbingzhao/article/details/51330563

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!