例如:
unsigned char c1 = -1; //char占8bit,c1的值为255 signed char c2 = 256; //char占8bit,c2的值是未定义的
解析:
c1 :当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如,8bit大小的unsigned char 可以表示 0-255 区间内的值,如果我们赋了一个区间以外的值 -1,则实际的结果是:-1%256=255;
c2 :当我们赋给有符号类型一个超出它表示范围的值时,结果是未定义的(undefined)。此时,程序可能继续工作、可能崩溃、也可能生成垃圾数据。



