使用没有任何条件语句的逻辑运算符或在变量中捕获

时间:2013-08-03 11:06:56

标签: c++ output logical-operators sequence-points

我在某些代码库中看到过一种“诗意”的代码。虽然它看起来很直接,但只是想确认一下,如果方向正确的话 以一种非常简单的形式:

bool foo ();  
bool bar ();  

int main () {
  foo() or bar();  // <--- line
}

高亮显示行的代码是否与代码段下方一样好?

if(foo() == false)
  bar();

我知道调用了所有语句的,运算符,但不确定or(相当于||)运算符。
用g ++进行测试,它给出了expected output

2 个答案:

答案 0 :(得分:1)

是的,or运算符是等效于||的文本。

所以你说的是correct

答案 1 :(得分:0)

如果第一个条件是true,则另一个条件不再评估(在||的情况下)和因此它就像你说的那样

if(foo() == false)
  bar();

同样的事情适用于&&,如果第一个条件是false,则不再评估第二个条件。