#include <stdio.h>
int a = 10;
int fun(int x)
{
static int b = 2;
int y = 1;
y = y + a;
printf("y = %d\n", y);
a = b + 4;
printf("a = %d\n", a);
b = x + y;
printf("b = %d\n", b);
return (a + b + y);
}
int main()
{
int m = 5, i;
for (i=1; i<=3;i++)
{
printf("i = %d,%d\n", i, fun(m));
printf("--------------------------\n");
}
return 0;
}

static的作用之一:当static和数据类型共同修饰变量时,变量的值可以重复叠加,不会被重新初始化。