int
a=32768,b=-32769;
printf("a=%d,b=%d",&a,&b)
则会输出a=-32768,b=32767
这样则50000输出就是(50000-32767)+(-32768)+(-1)=-15536
溢出的后果很多,好像有设置还是跟配置有关的,比如自加,有可能是加到最大,就不会变了,也可能是加到最大值后再加一编程负最大(因为计算机里存储的数据第一位表示符号)或者是0了(无符号数),自减跟自加类似,减到一出可能出现最大值。int
a=32768,b=-32769;
printf("a=%d,b=%d",&a,&b)
则会输出a=-32768,b=32767
这样则50000输出就是(50000-32767)+(-32768)+(-1)=-15536
溢出的后果很多,好像有设置还是跟配置有关的,比如自加,有可能是加到最大,就不会变了,也可能是加到最大值后再加一编程负最大(因为计算机里存储的数据第一位表示符号)或者是0了(无符号数),自减跟自加类似,减到一出可能出现最大值。