下面表达式计算过程和步骤及原因:
int a=1,b=2,c=3,d=4,x=2,y=2;
求表达式运算后Y的值:
(x=a>b)&&(y=c>d)
下面表达式计算过程和步骤及原因:
int a=1,b=2,c=3,d=4,x=2,y=2;
求表达式运算后Y的值:
(x=a>b)&&(y=c>d)
在(x=a>b)中 ">" 的运算级别比"="高,所以先判断a>b是否成立,结果不成立,即x=0
x=0是假,所以"&&"以后的语句就不执行了,即 y 的值没有变,y=2。
c=3,d=4
c>d是不成立的。。即是假,逻辑表达式c>d的值为0
把0赋给y
那么,Y就是0了
由于关系运算符“>”、“<”的优先级大余赋值运算符“=”,所以x=a>b是先运算后面的a>b,再将结果赋值给x,后面的y=c>d是同样的运算规则。
所以很容易得出,(x=0)&&(y=0),即y的值为0,总关系式的值也为0.
()优先级大于&&
>优先级大于=
假为0,真为1
=为赋值
结果y=0