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

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);}

慕斯王
浏览 147回答 2
2回答

森林海

首先你要知道以下几点规则1.x++表示这次运算还是采取原来的x值,运算结束后将x+12.--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

HUH函数

结果为22func(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=6func的返回值为11最终结果为22
打开App,查看更多内容
随时随地看视频慕课网APP