char -128~127
unsigned char 0~255
short 32768~32767
unsigned short 0~65535
int -2147483648~2147483647(≈2*10^9)
unsigned int 0~4294967295(≈4*10^9)
long -2147483648~2147483647(≈2*10^9)
unsigned long 0~4294967295(≈4*10^9)
long的长度与所用系统有关,32位系统long是32位,64位系统,long是64位
long long -9223372036854775808~9223372036854775807(≈9*10^18)
unsigned long long 0~18446744073709551615 (≈1*10^19)
也不需要记忆,可以根据climits中的符号常量表,使用时输出查看即可
对于无符号类型数据赋值超过其范围时,对赋值的数值按数据类型最大范围取模后再赋值。
例如unsigned char范围为0~255。
对这个类型的变量赋值256,等效于赋值为0。
对这个类型的变量赋值257,等效于赋值为1。
对unsigned赋值负数也是有意义的,如:
对这个类型的变量赋值-1,等效于赋值为255。
对这个类型的变量赋值-2,等效于赋值为254。
而对于有符号类型数据赋值超过其范围时,结果与所用的编译器有关