一、遵循几条规律
- sizeof(short int )<=sizeof(int)
- sizeof(int)<=sizeof(long int)
- short int 至少应为16位(2个字节)
- long int 至少应为32位(4个字节)
二、常见数据类型字节数
类型 | 16位 | 32位 | 64位 |
char | 1 | 1 | 1 |
short int | 2 | 2 | 2 |
int | 2 | 4 | 4 |
unsigned int | 2 | 4 | 4 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
long | 4 | 4 | 8 |
long long | 8 | 8 | 8 |
unsigned long | 4 | 4 | 8 |
- 16位编译器:char *(指针变量):2个字节(寻址空间为216,所以为两个字节)
- 32位编译器:char *(指针变量):4个字节
- 64位编译器:char *(指针变量):8个字节
三、计算显示每种数据类型所占内存空间大小的程序(c语言)
#include<stdio.h>
int main(void)
{
printf("Data type Number of bytes\n");
printf("------------ ---------------\n");
printf("char %zd\n", sizeof(char));
printf("int %zd\n", sizeof(int));
printf("short %zd\n", sizeof(short));
printf("long %zd\n", sizeof(long));
printf("long long %zd\n", sizeof(long long));
printf("float %zd\n", sizeof(float));
printf("double %zd\n", sizeof(double));
printf("long double %zd\n", sizeof(long double));
return 0;
}