#include <iostream>
using namespace std;
int * fun(int tmp){
static int var = 10;
var *= tmp;
return &var;
}
int main() {
cout << *fun(5) << endl;
return 0;
}
/*
运行结果:
50
*/
前面的章节中讲过,静态局部变量存在静态区,程序初始化时则已经创建了改变量,变量的生存周期为整个程序的生命周期。上述代码中在函数 fun 中定义了静态局部变量 var,使得离开该函数的作用域后,该变量不会销毁,返回到主函数中,该变量依然存在,从而使程序得到正确的运行结果,该静态局部变量直到程序运行结束后才销毁。