设m,n,a,b,c,d的值均为0,执行(m=a==b)||(n=c==d)后,m,n的值是什么,有变化吗?请给予详细解释!

2025-06-21 00:13:22
推荐回答(2个)
回答1:

楼上的 回答 有点不对
m,n的值是什么,有变化吗?请给予详细解释!
结果是 m=1 n=0
这设计到 逻辑运算的短路 问题
首先 表达式(m=a==b)a==b 为真 即 1 最后整个表达式 为 真 m的值 为1
对于 逻辑运算符|| 如果它的 左操作数 为真
不在 对右 操作数 进行判断 这就是所谓的短路
所以 n的 值 还是0 没变

回答2:

首先 ==、=、||这个三个运算符的优先级是
== > = > ||
所以,先计算a==b 和 c==d
由于m,n.b,c,d都是0
所以a==b的值是1,c==d的值也是1
这样,m和n的值都是1
最后就等于这样运算m||n
犹疑m和n都是1
所以
(m=a==b)||(n=c==d)的值是1