[英]Can someone explain the logic of this bit of code?
我通过IDE运行它,其余值分别为3、2、0、1。 另外,循环如何终止? x并非总是大于0,因此会无限期地继续吗? 谢谢。
int x = 1023;
while (x > 0)
{
printf("%d", x% 10);
x = x /10;
}
请注意,在C中,当一个除法的两个操作数都为整数类型时,该除法也具有一个整数类型,并且该值是除法的结果四舍五入为0 。
因此,在第一次迭代中,语句x = x /10;
将x
从1023
更改为102
(不是102.3
)。
由于您要对整数进行除法,因此每次都会得到四舍五入的结果,
所以x的每次迭代变为
102
10
1
每次只需打印x,您就会看到。 所以102模10是2
10 modul0 10是0
1模10为1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.