while里面的内容是假的时侯,程序就停止循环,C语言中非零即真,故当i自减到零时停止循环。输出420.手机打字很慢,望采纳。
i--是先调用i再将i的值减一,--i是先将i的值减一再调用i,while()语句只要括号内的值不为0就执行,第一步i=6,while(i--),调用时i=6,不为0,执行花括号内语句,注意i--,就是说判断完while后i的值已经是5了,然后printf是调用的是--i,也就是i先减一再输出,所以输出4,以此类推,直到while()括号内值为0退出循环,自己手打的,不明白再问吧
while(i--) printf("%d",--i); 相当于
while(i!=0){
i--; //i-- 先取值再 i=i-1;
--i;
printf("%d",i); //--i 先i=i-1 再取i值
}
循环开始 i =6;
第1次循环 :i=6判断 i !=0为真
运算两次i = i-1; i值为4;
输出4
第2次循环 :i=4判断 i !=0为真
运算两次i = i-1; i值为2;
输出2
第3次循环 :i=2判断 i !=0为真
运算两次i = i-1; i值为0;
输出0
第4次循环 :i=0判断 i !=0为假
循环结束
i 每次减一,直到i为零。
i-- 和--i作用都相当于i=i-1,但--i是先执行i=i-1,再用i的值。i--相反。
输出应该是:
420
如果你把:printf("\n");放在while()内的话,输出结果就是:
4
2
0
i的值减0时,while循环结束。至于i--和--i,前者是先用i当前值再减1,后者是先将i值减1再使用