C语言的问题 #include "stdio.h" main() { int i=6; while(i--) printf("%d",--i); printf("\n")

2025-02-23 18:34:51
推荐回答(5个)
回答1:

while里面的内容是假的时侯,程序就停止循环,C语言中非零即真,故当i自减到零时停止循环。输出420.手机打字很慢,望采纳。

回答2:

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退出循环,自己手打的,不明白再问吧

回答3:

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为假
循环结束

回答4:

i 每次减一,直到i为零。
i-- 和--i作用都相当于i=i-1,但--i是先执行i=i-1,再用i的值。i--相反。
输出应该是:
420
如果你把:printf("\n");放在while()内的话,输出结果就是:
4
2
0

回答5:

i的值减0时,while循环结束。至于i--和--i,前者是先用i当前值再减1,后者是先将i值减1再使用