高山流水i 发表于 2017-11-4 18:54:26

s1e13课后作业困扰

#include <stdio.h>

int main()
{
       signed char i = 0;

      while (i <= 0)
      {
                printf("%d", i);
                i = i - 1;//这里 i = i - 1是啥意思呢
      }

      return 0;
}

还有最后为什么会打印出 0~128的值呢?不应该是-128~0吗,想不通{:10_266:}

BngThea 发表于 2017-11-4 21:35:17

应该是打印0-1-2-3-4...-128才对吧?
i = i -1;//这句就是i自减1的意思

其实要理解这个输出只要明白char其实就是一个整形,只不过只用一个字节来存储数据而已,对于有符号的char型数据,其范围就应该是-128 ~ 127
因为i初始化为0,那么进行自减操作后自然就依次变成了 -1,-2,-3... 一直到 -128

高山流水i 发表于 2017-11-5 01:07:41

BngThea 发表于 2017-11-4 21:35
应该是打印0-1-2-3-4...-128才对吧?
i = i -1;//这句就是i自减1的意思



我看成0-1-2,以为是0 1 2,我好奇哪里来的一个横杆...............
页: [1]
查看完整版本: s1e13课后作业困扰