永发信息网

int f(int x) {static int k=0;k=k+x;return k;}当执行k=f(f(1));后,k的值为

答案:2  悬赏:60  手机版
解决时间 2021-03-26 06:44
  • 提问者网友:我的未来我做主
  • 2021-03-25 12:32
int f(int x) {static int k=0;k=k+x;return k;}当执行k=f(f(1));后,k的值为
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-03-25 13:12
i+=m+1含义为:i=i+m+1.第一次调用子程序fun时,赋值得:x=j=1,y=m=1.而子程序里m=0,i=2.所以运行i+=m+1得i=3;运行m=i+x+y得m=5.同时返回值m=5,即把5赋值给fun,即k=5,输出k=5.在这次调用中x、y值没改变,所以fun(j,m)中的j、m值不变。第二次调用fun时,赋值还得:x=j=1,y=m=1。而此时,因m、i为static型变量,即静态变量,它们保持上次运行结果即m=5,i=3,通过运算的m=11.
全部回答
  • 1楼网友:白昼之月
  • 2021-03-25 13:41
k=2,信我
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯