用个例子就知道了,打开立即窗口(Ctrl+G),输入代码:
if 1=0 and 1/0 then print "ok"
运行出错,放在程序中也一样出错。
证明了and前后都会被检查,也就是会消耗CPU资源。
我们再看下C++是如何的,运行VC6:
#include <iostream>
using namespace std;
int main() {
int intA=0;
if (1==2 && 1/intA)
{
cout << 'a' << endl;
}else{
cout << 'b' << endl;
}
return 0;
}
运行结果:
b
证明了C++的短路操作在第一个条件不满足的情况下,就不管后面的条件了。
这个有什么用?适用于优化代码。