局部静态变量static可以理解为在函数内部开了一个只有在该函数内部可以用的全局变量(基本等价全局变量,但只有在该函数内部可用)
1、局部静态变量中static只会初始化一遍
int output(void)
{
static int cnt=0; //第一次执行,第二次直接跳过
cnt++;
cout<<cnt<<" times"<<endl;
}
int main()
{
for (int i=1;i<=5<i++) output();
}
输出:
1 times
2 times
3 times
4 times
5 times
2、局部静态变量将数据储存在堆数据中而不是栈数据中,可以防止爆栈
int output(void)
{
static int cnt[1000000];//储存在堆,可以比直接在栈开的大
}
本文分析了局部静态变量static的特点,包括仅在函数内部初始化一次,存储在堆中避免栈溢出。通过实例说明了其与全局变量的区别以及在内存管理中的作用。
850






