gpt4 book ai didi

c - 在 C 中,条件表达式的计算结果总是为 0 还是 1?

转载 作者:太空狗 更新时间:2023-10-29 14:52:00 26 4
gpt4 key购买 nike

&&|| 等条件表达式,它们的计算结果总是为 0 还是 1?或者对于 true 条件,除 1 以外的数字都是可能的?我问是因为我想分配一个这样的变量。

int a = cond1 && cond2;

我想知道我是否应该改为执行以下操作。

int a = (cond1 && cond2)? 1:0;

最佳答案

逻辑运算符(&&||!)的计算结果都是 10

C99 §6.5.13/3:

The && operator shall yield 1 if both of its operands compare unequal to 0; otherwise, it yields 0. The result has type int.

C99 §6.5.14/3:

The || operator shall yield 1 if either of its operands compare unequal to 0; otherwise, it yields 0. The result has type int.

C99 6.5.3.3/5:

The result of the logical negation operator ! is 0 if the value of its operand compares unequal to 0, 1 if the value of its operand compares equal to 0. The result has type int. The expression !E is equivalent to (0==E).

关于c - 在 C 中,条件表达式的计算结果总是为 0 还是 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617776/

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