首页 > 解决方案 > 它是如何无限次进行的?

问题描述

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

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

标签: cloopschar

解决方案


在 Cchar中可以有符号或无符号 - 这取决于实现。如果signed,则范围(在大多数平台上)为 -128 到 +127,因此始终小于 255。

更改类型如下:

unsigned char j=1;

将消除歧义。但即便j <= 255如此,在大多数常见平台上总是如此,因为它永远不会大于 255。在这种情况下,它将“换行”为零,所以:

while(j != 0)

将起作用,或者更简单并且没有平台依赖性问题,只需将类型更改jint

int j=1;

这更有意义。


推荐阅读