Bri*_*ian 3 c c++ if-statement
在C或C++中,使用!(variable)和(!variable)在a之间是否有确定的区别if-statement,例如:
if (!(variable)) { .. // do something }
要么
if (!variable && !(variable2)) { .. // do something }
这样一个版本提供的结果与另一个版本不同?
一切都与操作顺序有关.使用!(变量)将评估括号内的所有条件然后执行!(或NOT)确定是否输入if语句where-as(!变量将特别对变量本身进行NOT.
所以在这种情况下:
!(true && false) = true
!(true && true) = false
(!true && !false) = false
(!true && true) = false
!(true && !false) = false
...等等
希望这有帮助.
它产生差异的唯一方法是,如果变量是表达式,那么它是运算符优先级的问题.否则&&优先级低于!