#include<stdio.h>
int f(int m){
int s;
static int k=0;
for(;k<=m;k++){
s++;
printf("%d\n",k);}
return s;
}
int main(){
int s=1;
s=f(2)+f(2);
printf("%d",s);
}

#include<stdio.h>
int f(int m){
int s=0;
static int k=0;
for(;k<=m;k++){
s++;
printf("%d\n",k);}
return s;
}
int main(){
int s=1;
s=f(2)+f(2);
printf("%d",s);
}

这说明说明,第一个次f(),结束后f里面的s没有立刻释放
该博客探讨了C语言中静态变量在函数调用过程中的行为。示例代码显示,当静态变量在函数内部使用时,它不会在每次函数调用后立即释放,而是保留其值供后续调用使用。这导致了函数f()被调用两次但结果不同的现象,揭示了静态变量在内存管理中的特性。
1622

被折叠的 条评论
为什么被折叠?



