gpt4 book ai didi

c - 为什么 C/C++ 中缺少逻辑运算符(&&= 和 ||=)的赋值?

转载 作者:太空狗 更新时间:2023-10-29 14:58:42 24 4
gpt4 key购买 nike

1) 为什么没有像有和差赋值那样的逻辑运算符赋值?

bool a = true;
bool b = false;
a = a || b;
a ||= b; // syntax error!
a |= b; // OK.

2) 对 bool 变量应用按位运算符是什么意思? 它与使用逻辑运算符一样吗?

最佳答案

确实 &&=||= 从 C 中“缺失”。我认为原因之一是 C 中的逻辑 AND 和 OR 执行短路,这在缩写形式中会有点奇怪。但是不要在它们的位置使用按位赋值运算符。相反,只需写:

a = a && b;
c = c || d;

如果您具有规范的真/假值(1 和 0),则按位运算符将起作用。但如果应用于非规范值,例如 5 和 2,您将得到不同的结果(5 && 2 是 1,但 5 & 2 是 0)。

关于c - 为什么 C/C++ 中缺少逻辑运算符(&&= 和 ||=)的赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527204/

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