#include<studio.h>func(int a,int b) {int c;c=a+b;return c;}main(){int x=6,r;r=func(x,x+=2);}

输出的是r,求r的值?请详解 谢谢
2024-12-05 01:00:27
推荐回答(4个)
回答1:

这个不难啊,首先函数func返回的是参数a+b的和,那么调用后就是
r=func(6,6+=2);
r=func(6,8);
r=14;
你写得有点乱
可以这样编写
#include
int func(int a,int b)
{
return a+b;
}
main()
{
int x=6,r;
r=runc(x,x+=2);
printf("r的值为:%d",r);
}
比较简单方便阅读

回答2:

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

回答3:

#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("%d\n",r);//输出a+b,即13+8
}

回答4:

运行一遍就知道了。。。