C中数据类型占用内存的大小
数据类型表示存储何种类型的数据,从内存来看,就是占用的内存大小。
C标准并未明确规定各数据类型占用多少字节的存储空间。
各数据类型的内存大小与操作系统位数、编译器有关,可以在代码中使用sizeof()进行查询。
常用规则
1、字符类型:char占用1个字节
表示的是字符对应的ASCII码
2、浮点类型:float占用4个字节,double占用8个字节
3、sizeof(long long) >= sizeof(long) >= sizeof(int) >= sizeof(short)
long long至少64位,long至少32位,short至少16位
int建议为一个机器字长(32位环境下为4字节,64位环境下为8字节)
4、默认情况下,short、int、long、long long都是带符号的,即signed
char可以表示signed char或unsigned char,具体表示哪种由编译器决定
参考表格(以实际为准)
操作系统位数\数据类型 | 16位系统 | 32位系统 | 64位系统 |
---|---|---|---|
char(有符号或无符号,由编译器指定) | 1字节 | 1字节 | 1字节 |
(signed/unsigned) char | 1字节 | 1字节 | 1字节 |
(signed/unsigned) short | 2字节 | 2字节 | 2字节 |
(signed/unsigned) int | 2字节 | 4字节 | 8字节 |
(signed/unsigned) long | 4字节 | 4字节 | 8字节 |
(signed/unsigned) long long | 8字节 | 8字节 | 8字节 |
float | 4字节 | 4字节 | 4字节 |
double | 8字节 | 8字节 | 8字节 |