再调用函数后调用的函数变量会释放
如下代码:
#include<stdio.h>
int fun() {
int i = 0;
return i += 10;
}
int main() {
int a = fun();
printf("a=%d\n", a);
int b = fun();
printf("a=%d\n", b);
return 0;
}
我们可以明显地看出我们用两个变量a和b来接受这个函数的返回值后,两个都为10;
这是因为每次我们调用函数后这个i的内存就会释放所以每次接受返回值都为10。
如果不想让它释放的方法
我们可以将这个变量定义为静态变量,因为如果我们将它定义为静态变量就意味着这个变量在我们调用函数后内存不会释放,这个变量的生命周期就变成了主函数的声明周期,当整个程序运行完后才会释放。