以下内容源于网络资源的学习与整理,如有侵权请告知删除。
数据类型的长度(所占的字节数),与机器字长及编译器都有关系。
所以,int、long int、short int等数据类型的长度可能随编译器而异。
几条铁定的原则(ANSI / ISO制订的)
1、sizeof( short int ) <= sizeof( int ) <= sizeof( long int )
2、short int 至少应为16位(2字节)
3、long int 至少应为32位 (4字节)
32位编译器下数据类型的长度(默认的情况)
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
16位编译器下数据类型的长度
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器下数据类型的长度
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节