C语言--关于无符变量回绕 和 有符变量溢出

  C语言中变量分为有符号变量signed型和unsigned型。

  对于无符号unsigned型变量,在运算时如果超出范围,将会出现回绕现象。例如,定义一个unsigned char型变量,如果当前赋值为255,自增1后则变量的值变为0。如果当前赋值为0,自减1后变量的值变为255。

  对于有符号signed型变量,在运算时如果超出范围,将会出现溢出现象。根据C99的规定,C语言中有符号变量溢出后的结果,是根据编译器的特性来决定的。在VS2012 win7系统下测试,与无符号的回绕相同。