c语言里可以用两个逻辑或连接三个条件一起使用么?

2025-12-17 19:23:41
推荐回答(1个)
回答1:

a=(m=a>b)&&(n=c>d)||++a==b--;
首先是
m=a>b,a>b为假,所以m=0.
&&是有一个是0就是假,||是有一个为1就为1,
所以不短路的条件都看运算符前的,
如果&&前是0,不运算后面,结果必为0;
如果||前是1,不运算后面,结果必为1。
所以(m=a>b)&&(n=c>d)前面的是0,所以必为假,因此)(n=c>d)就不用看了,也不计算,n的结果也没改变,还是6。(m=a>b)&&(n=c>d)结果就是0.
变成
0
||++a==b--;
所以要看后面的,a,b之前值没改,所以++a是2,b--是先赋值后减,所以赋值时还是2.
所以++a==b--
结果是1.然后赋值给a,因此a=1,b因为前面自减,所以赋值2自减的结果是1,所以b=1。
结果
1
1
0
6
满意就采取最佳答案吧!