C++ c++;
我的代码中有以下if语句:C++ c++;,c++,C++,我的代码中有以下if语句: ~(( APQState == dot11->tempState[0] ) && ( STAQState == dot11->tempState[1] ) && ( tempk1 == dot11->tempState[2] ) && ( tempk2 == dot11->tempState[3] ) && ( tempk3 == dot11-&
~(( APQState == dot11->tempState[0] ) &&
( STAQState == dot11->tempState[1] ) &&
( tempk1 == dot11->tempState[2] ) &&
( tempk2 == dot11->tempState[3] ) &&
( tempk3 == dot11->tempState[4] ))
比如说布尔变量
B = ( APQState == dot11->tempState[0] ) &&
( STAQState == dot11->tempState[1] ) &&
( tempk1 == dot11->tempState[2] ) &&
( tempk2 == dot11->tempState[3] ) &&
( tempk3 = =dot11->tempState[4] )
即使B为true(=>~B为false),if语句也会被计算。当循环执行时,我检查了循环中B的值。 我得到B=1 奇怪的是,当我尝试计算(~B)的值时,它显示的值是2。(即B=1时)
为什么会发生这种情况?确保你知道自己想要什么
~
是位运算符,用于翻转所有位
是“NOT”的逻辑运算符。请确保您知道您想要什么
~
是位运算符,用于翻转所有位
是“NOT”的逻辑运算符。将~B更改为!B
希望这能奏效把~B改成!B
希望在 C++中的TrdE(~)是A。这与逻辑NOT运算符(!)不同
~B
并不总是等于!B</代码> < P> C++中的TrdE(~)是A。这与逻辑NOT运算符(!)不同
~B
并不总是等于!B
例如APQState、dot11->tempState[2]等的单个布尔表达式中的所有变量都是整数。所有变量都已正确声明和初始化。如果语句逻辑否定为,则可以输入代码!B
,而不是~B
。APQState、dot11->tempState[2]等单个布尔表达式中的所有变量都是整数。所有变量都已正确声明和初始化。如果语句逻辑否定为,则可以输入代码!B
,而不是~B
。