为了账号安全,请及时绑定邮箱和手机立即绑定

如下代码所示,请问最终结果?

如下代码所示,请问最终结果?

C
慕斯王 2022-03-25 19:15:33
func(int a,int b){return a+b);}main(){int x=6,y=7,z;z=fun(fun(x++,y++),fun(--x,--y));printf("%d',z);}
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

首先你要知道以下几点规则
1.x++表示这次运算还是采取原来的x值,运算结束后将x+1
2.--x表示本次计算x就采用原来的值-1进行计算
3.函数处理顺序为自右向左;
下面开始分析z=fun(fun(x++,y++),fun(--x,--y))
(1)根据规则3先计算fun(--x,--y),根据规则2,此时采取x=6-1,y=7-1带入计算得到
fun(--x,--y)=11;此时x=5,y=6
(2)根据规则3再计算fun(x++,y++),根据规则1,此时采取x=5,y=6带入计算得到fun(x++,y++)=11,运算结束后再根据规则1继续计算x=5+1,y=6+1;此时x=6,y=7
(3)有了fun(--x,--y)和fun(x++,y++)的值,第三部就是他俩相加为11,此时x=6,y=7

查看完整回答
反对 回复 2022-03-28
?
HUH函数

TA贡献1836条经验 获得超4个赞

结果为22


func(int a,int b) {    return a+b;}main() {    int x=6,y=7,z;    z=func(func(x++,y++),func(--x,--y));    printf("%d",z);}

由于编译的某些规则,x=5,y=6

func的返回值为11

最终结果为22


查看完整回答
反对 回复 2022-03-28
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信