level 1
#include <stdio.h>
int fun(int x, int y)
{
static int m=0, i=2;
i+=m+1,
m=i+x+y;
return m;
}
int main()
{
int j=1,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d,",k);
return 0;
}
请大家帮我分析下这个
这段程序中,i,m值的变化过程;
自己学的太水了,实在是有点绕了。
2011年08月06日 07点08分
1
level 1
#include <stdio.h>
int fun(int x, int y)
{
static int m=0, i=2;
i+=m+1, 第一次调用:i=i+m+1 i的值为3;
m=i+x+y; m=3+1+1 m的值为5;
return m; 第二次调用:因为m,i为静态局部变量,所以现在
} m的值为5,i的值为3,不是0与2了。
i=i+m+1=3+5+1=9,i的值为9;
m=9+1+1=11;m的值为11.
int main()
{
int j=1,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d,",k);
return 0;
}
2011年09月17日 14点09分
6