我试图了解其背后的逻辑,但无法理解。幕后发生了什么以及它在无限时间内如何进行?
char j=1;
while(j <= 255)
{
printf("%d", j);
j = j+1;
}
答案 0 :(得分:1)
C中的signed
可以是有符号的也可以是无符号的-这取决于实现。如果为unsigned char j=1;
,则范围(在大多数平台上)为-128至+127,因此始终小于255。
更改类型如下:
j <= 255
将消除歧义。但是即使这样,while(j != 0)
在大多数常见平台上也始终是正确的,因为它永远不能大于255。在这种情况下,它将“包装”为零,所以:
j
将起作用,或更简单,并且没有平台依赖性问题,只需将int
的类型更改为int j=1;
:
{{1}}
这更有意义。