一个程序让你看懂全局变量、静态局部变量、局部变量的生存期(C++语言程序设计基础-学堂在线)

代码来自学堂在线的清华大学的一门C++课程
课程链接:C++语言程序设计基础

//5_2.cpp
#include <iostream>
using namespace std;
int i = 1;	// i 为全局变量,具有静态生存期

void other() {
	//a, b为静态局部变量,具有全局寿命,局部可见,只第一次进入函数时被初始化
	static int a = 2;
	static int b;
	//c为局部变量,具有动态生存期,每次进入函数时都初始化
	int c = 10;
	a += 2;
	i += 32;
	c += 5;
	cout << "---OTHER---" << endl;
	cout << " i: " << i << " a: " << a << " b: " << b << " c: " << c << endl;
	b = a;
}

int main() {
	//a为静态局部变量,具有全局寿命,局部可见
	static int a;
	//b, c为局部变量,具有动态生存期
	int b = -10;
	int c = 0;

	cout << "---MAIN---" << endl;
	cout << " i: " << i << " a: " << a << " b: " << b << " c: " << c << endl;
	c += 8;
	other();
	cout << "---MAIN---" << endl;
	cout << " i: " << i << " a: " << a << " b: " << b << " c: " << c << endl;
	i += 10;
	other();
	return 0;
}

运行结果在这里插入图片描述
注:运行这个代码,结合注释,慢慢理解。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页