C中运算符的优先级

时间:2015-12-14 04:57:48

标签: operators operator-precedence

我知道后缀和后缀增量(减量)与C中的比较(==)相比具有更高的预先确定性。

但我现在遇到混乱,如果我有2个条件循环,如while (0 != i--)  和while (0!= --i),那有什么区别?因为优先顺序,应该首先执行减量,然后进行比较?

1 个答案:

答案 0 :(得分:0)

i--“使用”i的值,然后递减它。

--i递减i,然后“使用”i的值。

因此,如果i=4,则while(0 != i--){ printf("%d\n", i); }将显示3(因为我现在已经减少),2,1,0(因为我在检查完成时为1)。

执行检查时while(0 != --i) { printf("%d\n", i); } you'd get 3 (i is still decremented), 2, 1 but not 0. i`为0,因为它是PREdecremented。