java 语言所占字节数
数据类型 | 32位计算机 | 64位计算机 |
byte | 1 | 1 |
char | 2 | 2 |
int | 4 | 4 |
long | 8 | 8 |
float | 4 | 4 |
double | 8 | 8 |
引用 | 4 | 8 |
c 语言所占字节数
数据类型 | 32位计算机 | 64位计算机 |
byte | 1 | 1 |
char | 2 | 2 |
int | 4 | 4 |
long | 4 | 8 |
float | 4 | 4 |
double | 8 | 8 |
char*(以及其他指针) | 4 | 8 |
java 除了引用类型所占字节与机器字长相关,其他的 32位和 64位 都一样!!
但是 c语言中 long 和 char* 取决于机器字长,并且长度与机器字长等长 , C 语言的指针类型针对不同的机器字长,所占字节数不一样,我可以理解为操作系统为 内存条编址, 4字节指针只能编址 0~ 40亿(也就是4G 内存)而在64位机上4字节不够用, 必须用8 字节,但是C 语言中的 long 类型 在 64位机上 用 8 字节就不明白啦?????
,