静态局部变量和局部变量有何不同啊 C++中

请给我详细解释一下 静态局部变量和局部变量有何不同 ?

局部变量在它的生命期结束时,它的内存也随之消失,再次使用时再次申请空间,而静态局部变量则不会释放当前的内存,而且只定义一次。
例1-100的和:
for(int i=1;i<101;i++)
{
static int sum=0;
sum+=i;
}

这里的sum并不会因为static int sum=0;而重新定义,而是保持当前的sum的和
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-13
静态局部变量虽然属于”局部变量”,但其生命周期与整个程序的生命周期一样,只不过在用不到的时候不可见.当其再次被"激活"(也就是程序再次进入定义它的程序段时,其值不变).
而局部变量,存放于栈中,用完就没了.本回答被提问者和网友采纳
第2个回答  2009-03-31
作用域:相同

作用周期:静态局部变量类似于全局变量,每次进入的时候都使用上一次的值(第一次同局部变量),而局部变量每次重新定义和初始化。
第3个回答  2009-03-31
静态局部变量的生命周期长,它只被定义一次

比如
for(int i = 0; i <100; i++)
{
static int c =3;//只执行一次。
c++;
}

地址空间不同,静态存储区和栈