static定义变量的值问题 #include <stdio.h> int f(int x) { static int y=1; x+=y; y++; return x; } int main(void) { int k; k=f(3); printf("%d %d\n",k,f(k)); //%d和%d之间只有1个空格 return 0; } //这题输出的结果是4 6 //说明static定义的y在重新执行static int y = 1;后没有发生值的i变化 //可能是因为static关键字将y定义到了静态存储区 //在静态存储区的值由于某种性质不会轻易地发生变化