谁能告诉我这个程序怎样运算的?#include 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/n",k);}输出结果是5和11

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 10:36:48

谁能告诉我这个程序怎样运算的?#include 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/n",k);}输出结果是5和11
谁能告诉我这个程序怎样运算的?
#include
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/n",k);
}
输出结果是5和11

谁能告诉我这个程序怎样运算的?#include 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/n",k);}输出结果是5和11
函数内定义变量加了static关键字,所以在编译时只进行一次初始化,之后再调用函数不会再重新赋值,也就是说再次调用时i=3,m=5;再执行
i+=m+1;m=i+x+y;return m;所以m=11.如果不加关键字,两次调用结果是一样的.