int main(void)
{
puts("该环境下各字符型、整型数值的范围");
printf("char: :%d~%d\n", CHAR_MIN, CHAR_MAX);
printf("signed char :%d~%d\n", SCHAR_MIN, SCHAR_MAX);
printf("unsignd char :%d~%d\n", 0, UCHAR_MAX);
printf("short :%d~%d\n", SHRT_MIN, SHRT_MAX);
printf("int :%d~%d\n", INT_MIN, INT_MAX);
printf("long :%ld~%ld\n", LONG_MIN, LONG_MAX);
printf("unsigned short :%u~%u\n", 0, USHRT_MAX);
printf("usigned :%u~%u\n", 0, UINT_MAX);
printf("unsigned long :%lu~%lu\n", 0, ULONG_MAX);
return 0;
}
运行结果:
数据类型 | 最小值 | 最大值 |
char | -128 | 127 |
signed char | -128 | 127 |
unsignd char | 0 | 255 |
short | -32768 | 32767 |
int | -2147483648 | 2147483647 |
long | -2147483648 | 2147483647 |
unsigned short | 0 | 65535 |
usigned | 0 | 4294967295 |
unsigned long | 0 | 4294967295 |
声明变量时,可以通过加上 类型说明符 signed 或 unsigned 来指定其中一种数据类型。若不加类型说明符,则默认为有符号。
无符号整型 (unsigned integer type) 表示 0 和整数的整型
有符号整型 (signed integer type) 表示 0 和正负数的整型
字符型 | 整型 | 有符号整型 | 无符号整型 |
signed char | signed short int | signed char | unsigned char |
char | signed int | signed short int | unsigned short int |
unsigned char | signed long int | signed int | unsigned int |
unsigned short int | signed long int | unsigned long int | |
unsigned int | |||
unsigned long int | |||
signed short | |||
signed int | |||
short | |||
unsigned short | |||
signed | |||
int | |||
unsigned | |||
signed long | |||
long int | |||
long | |||
unsigned long |
注:char 型比较特殊,存在既不带 signed 又不带 unsigned 的 “单独”的char型。
对于单独的 short 和 long, 可以认为是省略了 int。
对于单独的 signed 和 unsigned,可以认为是(非 short 和 long 的)int。