为什么此代码的输出不显示count==4
? operator--
优先于operator!
,对吧?
int main()
{
int found = 0, count = 5;
if (!found || --count == 0)
cout << "danger" << endl;
cout << "count=" << count<< endl;
}
答案 0 :(得分:0)
--
和!
的优先级在这里无关紧要,因为它们都是前缀,无论如何都应用于不同的子表达式。您正在观察的是||
的短路:由于左操作数为true
,因此无论右操作数的值如何,OR的结果都为真,因此无需浪费时间来评估它,所以它没有。