什么是优先权!运算符vs - 在表达式中!x--?

时间:2014-07-16 15:52:40

标签: c++ logical-operators

此特定代码

if (!x--)

其中xint!是NOT运算符。

这段代码的作用是什么?为什么?

2 个答案:

答案 0 :(得分:5)

这里有两个运算符,第一个是后递减运算符--,这意味着将x减少1并返回原始值。

第二个是!运算符,它是逻辑NOT运算符,如果操作数为零则返回true,如果不是零,则返回false

--具有更高的优先级,因此将首先评估它。

因此,代码将x减少1,然后在到达行之前x为0时执行条件的主体。

答案 1 :(得分:1)

由于“ - ”用作后缀运算符,因此只有在计算“x”后才会递减变量“x”。

如果x之前为零,那么将执行if语句的真实部分。

无论是否为零,

x都会递减。