int x = (char)257 + 100;
printf("x = %d\n", x); //x = 101
如果编译器设置的char类型为unsigned, 那么char类型的最大值为255, 二进制为11111111,
再加1,成为256,二进制为00000000,发生溢出,实则为0,
此时再加1,成为257,二进制为00000001,实则为1
所以 x = 101
int x = (char)257 + 100;
printf("x = %d\n", x); //x = 101
如果编译器设置的char类型为unsigned, 那么char类型的最大值为255, 二进制为11111111,
再加1,成为256,二进制为00000000,发生溢出,实则为0,
此时再加1,成为257,二进制为00000001,实则为1
所以 x = 101