我知道后缀和后缀增量(减量)与C中的比较(==)相比具有更高的预先确定性。
但我现在遇到混乱,如果我有2个条件循环,如while (0 != i--)
和while (0!= --i)
,那有什么区别?因为优先顺序,应该首先执行减量,然后进行比较?
答案 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。