c语言表达式求值设intx=1,y=1;表达式(!x++||y--)的值

为什么 !x++的值是0,y--的值是1
2024-11-29 05:35:44
推荐回答(2个)
回答1:

因为++与!的运算优先级一样,并且结合性都是从右向左,所以!x++先计算x++,x++等于2,再求反,非0求反值为0,至于y--,y自减运算,运算符在后面先取y的值,再进行自减运算,y--,y的值为0,但是自减之前先取y的值参与逻辑或运算,0逻辑或1结果为1

回答2:

(!x++||y--) = 1
y-- = 1,表示先赋值后自减,赋值是1

!x++ = !1 = 0,赋值同上,!取反