1 静态局部变量在静态存储区内分配存储单元。在程序运行期间都不释放。
2 对静态局部变量是在编译时赋初值的,即只赋值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上一次函数调用结束时的值。
3 静态局部变量,如果定义的时候没有赋初值,编译时自动赋初值0或者空字符。
4 静态局部变量在函数调用结束后仍然存在,但其他函数不能引用它,在其他函数中,它是"不可见"的。
#include <iostream>
void func();
int main()
{
func();
func();
func();
return 0;
}
void func()
{
static int n = 10;
n = n + 1;
std::cout << "静态局部变量n的值为:" << n << std::endl;
}
运行结果:
分析:
静态局部变量初始化一次之后,再次调用不会重新初始化,保留的是最后一次的计算结果。