请解析此程序

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:38:21
#include<stdio.h>
f(int a)
{
int b=0;
static c=3;
a=c++;
b++;
return(a);
}
main()
{
int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}

这个程序有两次循环。i=0时,执行k=f(a++)。在f()中c=3,b=0,通过a=c++把3赋值给a,c自动加1变成4,b也加1。由于c时静态全局变量,在第二次循环时c的值保留为4,b=0。然后把c的值4赋给a。最后的结果是4。