while(!(--x))是什么意思?

如题所述

直接上图吧,就是x=1的时候会执行循环,其他值都不会执行循环。楼下是正解没错。  顺便补充一句。。还有一个用途就是x肯定会被自减1。


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-02

效果:判断x的值减一后是否是零,是零则执行循环,否则跳过循环!

/*相当于*/
while((--x) == 0)

解释:

--x 是自减运算,即等同于 x = x - 1;(注意与 x-- 的区别)

int x = 10, y = 10;
printf("%d, %d", --x, ++y);/* 输出9 ,11,最终 x = 9, y = 11 */
x = 10, y = 10;
printf("%d, %d", x--, y++);/* 输出10,10,最终 x = 9, y = 11 */

!(--x)是对 --x 的值取反(C语言中,没有真正的boolean类型,而是用非零值表示真,零表示假)

第2个回答  2012-09-16
--x为0时执行while循环。
相似回答