38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
/* 静态变量.cpp */
|
||
#include <iostream>
|
||
using namespace std;
|
||
int i = 1; // i 为全局变量,具有静态生存期。
|
||
int 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; // 1 0 -10 0
|
||
c = c + 8;
|
||
other(); // 33 4 0 15
|
||
cout << "---MAIN---\n";
|
||
cout << " i: " << i << " a: " << a << " b: " << b << " c: " << c
|
||
<< endl; // 33 0 -10 8
|
||
i = i + 10;
|
||
other(); // 75 6 4 15
|
||
other(); // 107 8 6 15
|
||
|
||
return 0;
|
||
}
|
||
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;
|
||
}
|