C++逻辑和运算符

Coo*_*kie 8 c++

C++中是否有逻辑&运算符?例如,一个与&&一样工作的运算符,除了它还评估后面的参数,即使前面的参数已经评估为false?运算符&是我理解的按位和运算符.

Luc*_*ore 21

运算符&确实是按位运算符.我假设你有类似的东西

if ( f() && g() ) { /*do something*/ }
Run Code Online (Sandbox Code Playgroud)

并且你想要执行f()和g(),无论其中一个是否被评估为false.我建议你做点其他事情:

bool bF = f();
bool bG = g();

if ( bF && bG ) { /*do something*/ }
Run Code Online (Sandbox Code Playgroud)

这也提供了更好的可读性,并且不会混淆尝试维护代码的其他程序员.从长远来看,这是值得的.

  • 如果f()和g()返回int怎么办?如果f()返回-1并且g()返回1,则f()&& g()将产生true,而您的条件将产生false ... (3认同)