gpt4 book ai didi

c - 我们如何解释赋值语句中的 `||` 和 `&&` ?

转载 作者:行者123 更新时间:2023-11-30 21:33:08 25 4
gpt4 key购买 nike

虽然我仍然是一名学生程序员,但我已经编码很长时间了/我通常擅长编程,但是当有人问像下面这样的问题时,我会陷入困境。以下程序的输出是什么以及为什么?

int main() 
{
int i=4,j=-1,k=0,w,x,y,z;
w=i||j||k;
print("%d",w);
return 0;
}

输出:1为什么会出现这样的结果?声明 w=||j||k; 是什么意思?意味着什么?

最佳答案

我|| j|| k 从左到右计算。它的作用是:

i == 4,这是 true,因此将其与任何其他值进行“或”运算将得到 true。就是这样1

该语句的其余部分不会被计算,因为 ||&&short-circuit operators ,也就是说,如果在语句 i != 0 中,则 jk 都不会被求值,因为结果保证为 1&& 的工作原理类似。
如果您有类似 f() || 的东西,记住这一点很重要k(),其中 k 有一些副作用,例如输出到屏幕或变量赋值;它可能根本不会被执行。

按位 OR 运算符 | 实际上是对值的按位表示进行 OR 运算;它评估所有操作数

<小时/>

1 感谢@SouravGosh!

关于c - 我们如何解释赋值语句中的 `||` 和 `&&` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785046/

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