这个不难啊,首先函数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);
}
比较简单方便阅读
函数参数处理顺序从右至左,先算x+=2,此时x=8,因此fun函数的的两个形参都是8,所以相加后返回16,这是编译器决定的,从左至右从右至左都行其实,这种题并不严谨。
#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
}
运行一遍就知道了。。。