gpt4 book ai didi

c - 评估以下表达式

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:41 25 4
gpt4 key购买 nike

以下代码片段:

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

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

我认为可以用两个概念来评估:

1.由于++运算符比逻辑运算符有更高的优先级,所以首先会计算所有自增运算符,然后&&比||具有更高的优先级将被计算。在此过程中,k将递增。

2.首先会计算&&运算符。为此++i和++j会被计算。由于&&运算符的结果是1,所以不需要计算++k。所以k不会递增.

当我在系统上尝试时,结果证明推理 2 是正确的,推理 1 是错误的。为什么会这样?

最佳答案

Oli 是对的...您将优先级与评估顺序混淆了。

优先意味着表达式被解释为:

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

相对于,说:

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

优先级不会改变 || 运算符的 LHS 始终在 RHS 之前计算的事实。

关于c - 评估以下表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239286/

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