常见数据类型
| 类型 | 类型(副) | 格式 | 说明 | 最小值 | 最大值 |
|---|---|---|---|---|---|
| 整数类型 | 枚举型 |
enum...型 |
|||
| - | 字符型 |
char型 |
单字节 字符 | 0/128 | 255/127 |
| - | - | signed char |
有符号单字节 char
|
-128 | 127 |
| - | - | unsigned char |
无符号单字节char
|
0 | 255 |
| - | 整形 | int |
(2或4字节) | -32768 | 32767 |
| - | - |
short/short int
|
2字节 限定符 | -32768 | 32767 |
| - | - |
long/long int
|
限定符 | -2147483648 | 2147483647 |
| - | - | unsigned short |
2字节无符号 short
|
0 | 65535 |
| - | - | unsigned |
无符号限定符 | 0 | 65535 |
| - | - | long |
4字节 | -2147483648 | 2147483647 |
| - | - | unsigned long |
4字节无符号 long
|
0 | 4294967295 |
| - | - |
long long int/long long
|
至少占64位 | ||
| - | - | signed int |
有符号int
|
||
| - | - | unsigned int |
无符号int2或4字节 |
0 | 65535/4294967295 |
| - | - | signed short int |
有符号短int
|
||
| - | - | unsigned short int |
无符号短int
|
||
| - | - | signed long int |
有符号长int
|
||
| - | - | unsigned long int |
无符号长int
|
||
| - | - | unsigned long int |
无符号长int
|
||
| - | - | unsigned long int |
无符号长int
|
||
| 浮点类型 | 浮点型 | float |
单精度浮点数4字节6位小数 | 1.2E-38 | 3.4E+38 |
| - | - | double |
双精度浮点数(常量)8字节15位小数 | 2.3E-308 | 1.7E+308 |
| - | - | long double |
双精度浮长点数(常量)16字节19位小数 | 3.4E-4923 | 1.1E+4932 |
| _Bool类型 | 表示布尔值 | 逻辑值为 | ture |
false |
1bit |
装换级别
注:
- 无符号整型
unsigned int表示0和正整数;有符号整型signed int表示0和正负整数; - 对于单独的
short和long,可以认为是省略了int; - 对于单独的
signed和unsigned,可以认为是(非short和long的)int; - 各种数据类型具体能表示多少个数值因编译器而异;
-
sizeof(类型名)可以查看对应类型的大小,单位为byte(字节); -
sizeof(short)≤sizeof(int)≤sizeof(short); -
int在运算或赋值时,其变量及时有小数部分,都将被舍去; -
double在运算或赋值时,其变量及时有小数部分,都将有效; -
short与int对象至少要有16位,而long对象至少要有32位; -
short对象不得长于int对象,而int对象则不得长于long对象; -
unsigned限定符限定的数总是正的或0,并服从算术模2的n次方定律,其中n是该类型机器表示的位数; -
int通常反映特定机器的自然大小,一般为16位或32位,short对象一般为16位,long对象一般为32位; - C语言规定了
short占用的存储空间不能多于int,long占用存储空间不能少于int; - 如果在
long类型和int类型占用空间相同的机器上编写代码,当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工;