kwrl.net
当前位置:首页 >> mAin() { int x=1,y=2,z=3; int r; r=FunC(x+y+z,x... >>

mAin() { int x=1,y=2,z=3; int r; r=FunC(x+y+z,x...

返回10。要分清先自加再赋值还是先赋值在自加。 参数到func(6,1,3).

f(a,b)=a+b f(6+7,8)=13+8=21

1、 有如下程序 int func(int a,int b) { return(a+b); } main() { int x=2,y=5,z=8,r; r=func((x-y),z); printf("%d\n",r...

func((x--,y++,x+y),z--); --,++在后,都是先取值,所以相当于先传参(x,y,x+y),z,之后再++--。 所以上面的函数相当于 r=func( ( 6 , 7, 13 ) , 8 ); 而(6,7,13)得到的返回值是最后一个13,所以上面的函数相当于 r=func( 13, 8 ); 所以r=1...

#include int func(int a,int b) { int c; c=a+b; return c; } main() { int x=6,y=7,z=8,r;//(x--,y++,x+y)为逗号表达式,取最后一项的结果,即x+y==13 r=func((x--,y++,x+y),z--);//因为z--为后减减,所以调用函数相当于调用func(13,8) printf...

这个涉及到一个函数参数执行顺序的问题,如果函数有多个参数,它的执行参数是由右向左执行的,举个基本例子 int a = 10; printf("testfun:%d %d", ++a, --a); 你会发现它是先计算--a 再计算++a。z=func(func(x++,y++),func(--x,--y)); 先计算执...

结果为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

r=func(func(x,y),z);这条语句的意思你可以这么理解: 假设Y=func(x,y);那么r=func(Y,z); 所以Y=func(x,y)=x+y=7; 然后就容易得到r=func(Y,z)=func(7,8)=7+8=15. 所以答案是D)15. 欢迎追问.

r=func(func(x,y),z); 先func(x,y),返回x+y;就是7; 然后func(7,z),返回7 + z;就是15

函数参数处理顺序从右至左,先算x+=2,此时x=8,因此fun函数的的两个形参都是8,所以相加后返回16,这是编译器决定的,从左至右从右至左都行其实,这种题并不严谨。

网站首页 | 网站地图
All rights reserved Powered by www.kwrl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com