一个long类型变量在内存里占据多少字节?多少KB?多少MB? 一个char类型,bool类型呢?(最好科学计数法)
发布网友
发布时间:2022-03-25 22:04
我来回答
共4个回答
热心网友
时间:2022-03-25 23:33
#include <windows.h>
#include <stdio.h>
main(){
long int x;
double K=1024.0;
x = sizeof(long);
printf("long: %d bytes, %e KB, %e MB\n", x, x/K, x/K/K);
x = sizeof(char);
printf("char: %d bytes, %e KB, %e MB\n", x, x/K, x/K/K);
x = sizeof(BOOL);
printf("bool: %d bytes, %e KB, %e MB\n", x, x/K, x/K/K);
return 0;
}
输出:
long: 4 bytes, 3.906250e-003 KB, 3.814697e-006 MB
char: 1 bytes, 9.765625e-004 KB, 9.536743e-007 MB
bool: 4 bytes, 3.906250e-003 KB, 3.814697e-006 MB
(结果同系统和编译器有关)
热心网友
时间:2022-03-26 00:51
long 型一般在Win32环境中占4字节;char型占1字节;bool型也是占1字节。
可以用sizeof()函数测试不同数据类型占内存字节数。
如 cout << sizeof(long) <<endl;
热心网友
时间:2022-03-26 02:26
你可以用printf("%d",sizeof(数据类型)),得到的就是该数据类型占据的字节数,即以B为单位,我测试的结果是4,即4B,你然后根据1KB=1024B,1MB=1024KB,可以算出,bool和char都可以根据这测试。
热心网友
时间:2022-03-26 04:17
一般是4字节,一字节是8bit,有公式的,自己算