繁体   English   中英

有人可以解释一下这段代码的逻辑吗?

[英]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; x1023更改为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM