静态局部变量(英語:static local variables)是一类特殊的局部变量,许多主流语言(C/C++、Visual Basic、 VB.NET等)中都有该变量。静态局部变量的值将一直保留,即便一个函数结束,另一个函数开始使用该变量。换言之,它是局部范围(local scope)的静态变量。
静态局部变量 和 静态全局变量(英語:static global variables)的生命周期一样,它们会存活到程序结束为之。[1]它们的区别:静态局部变量只可被一个函数访问(function scope), 静态全局变量 可被所有函数访问(global scope)。
#include
using namespace std;
void test()
{
// var是一个静态局部变量
static int var = 0;
++var;
cout << var << endl;
}
int main()
{
test(); // 输出1
test(); // 输出2
return 0;
}
闭包(英語:Closure)同样可以做到静态局部变量的效果。