首先在假设x=10的情况下,while(x--);输出的x的值为-1,而while(--x);的值则为0。
由于;在C语言中也是语句的一种,即空语句,因此;出现在while后就会被计算机当成循环体来看待,而循环能否继续则是看while的表达式是否为真,在C语言中结果为0则为假,非0则为真。
已知x--是先输出x的值,再进行x-1的操作,而--x则是先进行x-1,再输出x的值。
那么while(x--);输出x=2时,x实际的值为1,而继续循环直到x=0时,循环终止,但仍计算(x--)输出x的值为-1,而while(--x);正相反,因此当x的值为1时,(--x)的值为0,循环终止,x的值为0。
int x=10;
while(--x);
printf("%d",x);