请教一道C语言解题过程?

来源:百度知道 编辑:UC知道 时间:2024/05/06 04:00:14
#include<stdio.h>
void miain()
{ int y=10;
while(y--);
printf("y=%d",y);
}
结果是y=-1

C里边有个东西叫空语句,就是一个分号;表示什么也不做。
这里的while循环可以看作这样:
while(y--)
{
;
}
因此,如果y--的条件成立的话,while循环将不断的执行空语句。
因为y=10,所以是先判断再自减。
不过无论怎么说循环一次,y都会-1.
从10开始到1时都可以。
当y=1时,先判断while(1)继续循环。
y--;y=0;执行空语句;
再判断,while(0),循环不能继续,但是y自减不会因为不执行空语句而不执行,所以y还得自减1
所以最终y值是-1
你的答案正确!

whil(y--)
说明y 一直在自减循环中
一直到他不是整数型
也就是到-1时不是整数型了所以跳出循环
也就是说y前面你定义的int(也就是整数型)到自减到-1了不是整数了才跳出循环也就是Y=-1时才终止循环
不知道你明白了没有