C语言逻辑运算符与表达式

img


这个C语言表达式的输出结果是啥啊
我只能得出1&&y小于2
凑字数
zxcvbnmasdfghjkl

3<x<5 这个表达式有两个运算符,具有左结合性
先计算3<x,真则计算1<5,假则计算0<5,得到的结果都为真
|| 左边为真就不会判断右边的y>3
所以只能得出1&&y小于2

3<x<5 必为真
y>3&&y<2 要看你y的值是多少 总体下来就相当于 一个真或者后边结果的真假 true||(true or false);

&& 优先级大于 ||, 相当于(3<x<5) || (y>3&&y<2) ,这个值永远为真
因为 3<x<5 先计算3<x 要么等于0要么等于1,都小于5

3 < x < 5 || y > 3 && y < 2
首先 运算符的优先级是 < > && ||
所以先判断的是3 < x 结果只能是0或者1 再用结果0或者1 < 5 的结果肯定是1所以3 < x < 5的结果是1
再计算 y > 3 && y < 2 这个式子可以看出来不成立 结果是0
最后变成了从1 || 0 所以结果是1