#include<stdio.h> func(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return(m);}main()(int k=4,m=1,p;p=func(k,m); printf("%d,",p);p=func(k,m); printf("%d\n",p)} 的输出结果是什么
1 回答
手掌心
TA贡献1942条经验 获得超3个赞
#include<stdio.h> func( int a, int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return (m); } main() { int k=4,m=1,p; p=func(k,m); printf ( "%d," ,p); p=func(k,m); printf ( "%d\n" ,p) } |
打印的是两次调用func的返回值。
主函数中k,m值不变, 于是两次func的参数都是4,1
对于func
a=4 b=1
第一次
m=0,i=2;
i+=m+1; >>>> i=3
m=i+a+b;>>>>m=8
返回8 输出也就是8
第二次
m=8 i=3;>>> m和i是静态变量,还是上次退出时的值
i+=m+1; >>>> i=12
m=i+a+b;>>>>m=17
返回17
于是输出是
8
17
- 1 回答
- 0 关注
- 213 浏览
添加回答
举报
0/150
提交
取消