它在无限时间内如何?

时间:2019-12-31 05:42:28

标签: c loops char

我试图了解其背后的逻辑,但无法理解。幕后发生了什么以及它在无限时间内如何进行?

    char j=1;
    while(j <= 255)
    {
        printf("%d", j);
        j = j+1;
    }

1 个答案:

答案 0 :(得分:1)

C中的signed可以是有符号的也可以是无符号的-这取决于实现。如果为unsigned char j=1; ,则范围(在大多数平台上)为-128至+127,因此始终小于255。

更改类型如下:

j <= 255

将消除歧义。但是即使这样,while(j != 0) 在大多数常见平台上也始终是正确的,因为它永远不能大于255。在这种情况下,它将“包装”为零,所以:

j

将起作用,或更简单,并且没有平台依赖性问题,只需将int的类型更改为int j=1;

{{1}}

这更有意义。