【发布时间】:2014-01-04 12:56:16
【问题描述】:
今天我发现了一个我以前从未见过的语法。 || 和 , 是一样的吗?
bool f() {
cout << "f";
return true;
}
bool g() {
cout << "g";
return true;
}
int main() {
if(f(),g())
{
cout<<"OK with ,";
}
cout<<endl;
if(f()||g())
{
cout<<"OK with ||";
}
return 0;
}
从这个程序的输出来看,是这样的:
fgOK with ,
fOK with ||
它们是完全相同的东西还是有什么细微的差别?
【问题讨论】:
-
不,他们是不同的运营商。事实上,根据标准,您的输出是错误的。
-
这有点像问 + 和 * 是否相同,因为 2+2 和 2*2 给出相同的结果。
-
-1,您的代码不会重现您所谓的输出(除非您的编译器严重损坏)。不,它们不一样。
-
@OliCharlesworth 除了结果不一样。最初,它使用
&&而不是||,所以结果应该是一样的。所以更像是问+和*是否相同,因为3+3和3*3给出相同的结果:)
标签: c++ operators comma-operator