gpt4 book ai didi

c++ - C++中 bool 类型的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 00:37:07 26 4
gpt4 key购买 nike

我的代码中有以下 if 语句:

~(( APQState  == dot11->tempState[0] ) &&
( STAQState == dot11->tempState[1] ) &&
( tempk1 == dot11->tempState[2] ) &&
( tempk2 == dot11->tempState[3] ) &&
( tempk3 == dot11->tempState[4] ))

假设 bool 变量,

B = ( APQState  == dot11->tempState[0] ) &&
( STAQState == dot11->tempState[1] ) &&
( tempk1 == dot11->tempState[2] ) &&
( tempk2 == dot11->tempState[3] ) &&
( tempk3 = =dot11->tempState[4] )

即使 B 为真(=> ~B 为假),if 语句也会被评估。
我在执行时检查了循环内 B 的值。我得到 B=1;

奇怪的是,当我尝试计算 (~B) 的值时,它显示的值为 2。(即当 B = 1 时)。

为什么会这样?

最佳答案

确保您知道自己想要什么。

~ 是翻转所有位的位运算符。

! 是“NOT”的逻辑运算符。

关于c++ - C++中 bool 类型的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074232/

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