运算符!()和运算符 - ()在if条件下

时间:2017-02-05 07:40:24

标签: c++

为什么此代码的输出不显示count==4operator--优先于operator!,对吧?

int main()
{
   int found = 0, count = 5;
   if (!found || --count == 0)
       cout << "danger" << endl;
   cout << "count=" << count<< endl;
}

1 个答案:

答案 0 :(得分:0)

--!的优先级在这里无关紧要,因为它们都是前缀,无论如何都应用于不同的子表达式。您正在观察的是||的短路:由于左操作数为true,因此无论右操作数的值如何,OR的结果都为真,因此无需浪费时间来评估它,所以它没有。