gpt4 book ai didi

C:返回行中的 OR 运算符?

转载 作者:行者123 更新时间:2023-11-30 20:50:05 28 4
gpt4 key购买 nike

发现一些代码在 return 行中有一个 OR 运算符 (||)。有人能解释一下它的作用吗?

<小时/>

这是看起来像这样的东西:

int main()
{
...

return (1 || 0);
}

但实际上它是一个函数(返回 1 或 0),而不是 1 和 0:

int main()
{
...

return (foo(x++, y) || foo(x, y++));
}

最佳答案

一个||如果 a 为非零,无论 b 的值如何,b 的计算结果为 1;如果 a 为 0,则计算结果为 1 b 不为零,否则为 0。

所以 1 || 01,就像 2 || 0.

请注意,如果 a 非零,则不会计算 b:所以如果 b 是一个函数,在这种情况下不会被调用。因此,在您的示例中,foo(x, y++)被称为包括y++的评估,如果foo(x++, y) 非零。

请注意 a || 的类型b 是一个 int,无论参数的类型如何。比照。 C++,其中类型为 bool

关于C:返回行中的 OR 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381703/

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