那是有效的表达吗?如果是这样,您可以重写它以使其更有意义吗?例如,它与(4 > y && y > 1)
一样吗?您如何评估链式逻辑运算符?
最佳答案
语句(4 > y > 1)
解析为:
((4 > y) > 1)
比较运算符
<
和>
evaluate left-to-right。4 > y
根据其是否为真返回0
或1
。然后将结果与1。
在这种情况下,由于
0
或1
从不超过1
,因此整个语句将始终返回false 。但是有一个异常(exception):
如果
y
是一个类,并且>
运算符已被重载以执行不同寻常的操作。然后一切都变了。例如,这将无法编译:
class mytype{
};
mytype operator>(int x,const mytype &y){
return mytype();
}
int main(){
mytype y;
cout << (4 > y > 1) << endl;
return 0;
}
关于c++ - (4> y> 1)在C++中是否有效?如果是这样,您如何评价?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8889522/