注册 登录
编程论坛 C++ Builder

大家好,我是新手,大家能帮我解释一下这个程序么,谢谢啦

wangpeibing 发布于 2013-03-13 22:19, 1941 次点击
#include <iostream>
using namespace std;
int xyz(int a, int b)
{  int  c;
   c=a+b;
   return  c;
}
void main()
{  int  x=6,y=7,z=8,r;
   r=xyz((x--,y++,x+y),z--);//主要是这句不懂
   cout<<r<<endl;
}
9 回复
#2
fufa10292013-03-15 09:54
r = (1 , 8);
#3
gfchen18192013-03-15 11:32
r=xyz((x--,y++,x+y),z--);//
r=xyz((6,7,13),8)
r=xyz(13,8)
r=21
x=5,y=8,z=7
#4
wangpeibing2013-03-15 12:09
为什么只这样啊,不是
r=xyz((x--,y++,x+y)z--);
r=xyz((5,8,13),7);
???????????????????
?????????????????
#5
记忆里那一点2013-04-05 22:02
()里面是一个逗号表达式  表达式的结果是X+Y  也就是6+7
#6
wyp3319932722013-04-09 12:50
r=xyz((x--,y++,x+y),z--);
 r=xyz((6,7,13),8);
r=xyz(13,8);
r=21;
#7
yj12582526512013-04-13 12:20
r=xyz((x--,y++,x+y)z--);为什么后面的z--没有计算啊,求教
#8
lyymmm2013-04-16 19:24
z--表示先计算,然后再减,你可以在r=xyz((x--,y++,x+y),z--);后面多加一个cout<<z<<endl;就可以知道z这时已经减了。
#9
小王子的花2013-04-24 13:03
回复 4楼 wangpeibing
因为要执行这一句以后,他们的值再减一,而不是减一后再执行这句程序
#10
王旭东2013-04-24 23:06
逗号表达式啊
1