gpt4 book ai didi

C程序逻辑运算符序列

转载 作者:行者123 更新时间:2023-11-30 20:51:58 24 4
gpt4 key购买 nike

为什么是第二行

int i=-3, j=2, k=0, m;
m = ++i && ++j || ++k;

++j之后终止并忽略++k?我知道前半部分产生 TRUE 值,并且无论后面的值是什么,都会返回 TRUE。但是停止执行以下仪器的条件是什么?只要能确认最终的值就可以了?

最佳答案

&& 的优先级高于 ||++i++j 绑定(bind)到它并且

m = ++i && ++j || ++k;  

被解析为

m = (++i && ++j) || ++k;  

由于子表达式 ++i++j 均非零,因此它被解释为 true。由于逻辑运算符的短路行为,如果 left 变为 true,则在 || 情况下不会计算第二个(右侧)子表达式。
请注意,|| 的左侧子表达式是 (++i &&++j),而不是 j++

关于C程序逻辑运算符序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com