int a=3,b=2; printf(“%d,%d”,b=a<b,a=a<b);输出结果:1,0

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:05:00
求详解 b=a<b,a=a<b怎么看的?

xwdtyc的答案是错的
先是执行后面的 a=a<b 赋值的优先级比逻辑低先是算a<b 3<2结果为0赋值给a 即a=0

然后执行前面b=a<b 同样先是a<b 0<2(注意只是a=0) 结果为1 然后给b 即b=1 因此结果 1 ,0

b=a<b是将a和b比较之后的逻辑值赋值给b,a=3,b=2,那么a<b是不成立的,因此b为0,
a=a<b同理