主题:static 变量
这是我在二级 C语言考试题上看到的一个题,分析的一部分是:for循环第二次调用函数 f(3) ,由于第一次调用 f 函数时 静态变量 a 的值由 2 加 1 变为 3 ,
我的疑问是:,既然定义了 a 为static 变量,为什么 a 的值会变呢? 麻烦哪位高手能指点一下,谢谢了!
原程序如下:
#include <stdio.h>
int a=1;
int f(int c)
{
static int a=2;//为什么用了static 变量,此处 a 的值还是会变呢??
c=c+1;
return(a++)+c;
}
main()
{
int i,k=0;
for(i=0;i<2;i++)
{
int a=3;
k+=f(a);
}
k+=a;
printf("%d \n",k);
}
运行后结果是14 ,

您所在位置:
