suchenxiang 发表于 2022-2-6 13:18:48

上次问的这个问题还是不太理解

本帖最后由 suchenxiang 于 2022-2-6 13:59 编辑

为什么变量i初始值是0,也符合循环的条件,逐步减1的结果应该都是负数,为什么打印出来的是0-128的值
#include <stdio.h>

int main()
{
      signed char i = 0;

      while (i <= 0)
      {
                printf("%d", i);
                i = i - 1;
      }

      return 0;
}

ckblt 发表于 2022-2-6 14:03:39

本帖最后由 ckblt 于 2022-2-6 14:06 编辑

这就是负的呀!
你可以把代码改成这样:
#include <stdio.h>

int main()
{
    signed char i = 0;

    while (i <= 0)
    {
      printf("%d\n", i);
      i = i - 1;
    }

    return 0;
}
打印结果:
0
-1
-2
-3
-4
-5
...... // 我懒得写
-127
-128

ckblt 发表于 2022-2-6 14:06:35

本帖最后由 ckblt 于 2022-2-6 14:08 编辑

ckblt 发表于 2022-2-6 14:03
这就是负的呀!
你可以把代码改成这样:



搞错了,忘记添0了,打印结果是:
0
-1
-2
...
-127
-128

傻眼貓咪 发表于 2022-2-6 16:47:54

#include <stdio.h>

int main()
{
    signed char i = 0;
    while (i <= 0)         // i 初始值是 0 符合循环条件 i <= 0
    {
      printf("%d\n", i); // 打印: 0, -1, -2, -3 ... , -127, -128
      i = i - 1;
    }
    return 0;
}
页: [1]
查看完整版本: 上次问的这个问题还是不太理解