静态局部变量VS自动变量(static局部变量VSauto变量)
程序员文章站
2022-04-18 19:24:30
...
根据下面的例子更好的了解静态局部变量
#include <stdio.h>
int main()
{
int f(int);
int i,a = 2;
for(i=0;i<3;i++) printf("%d\n",f(a));
return 0;
}
int f(int a){
auto int b = 0;
static int c = 3;
b=b+1;
c=c+1;
return(a+b+c);
}
输出:
7
8
9
--------------------------------
Process exited after 0.2603 seconds with return value 0
请按任意键继续. . .
总结: auto int b:b是自动变量,关键字“auto”可省略。“int b ”与“auto int b”等价
static int c :c是静态局部变量,函数调用结束后,它并不释放,保留其当前值。