一:整形
int 4字节
long int 4字节
short int 2字节
unsigned int 4字节
unsigned long int 4字节
unsigned short int 2字节
二:字符型
char 1字节
unsigned char 1字节
三:浮点型
float 4字节
double 8字节
long double 8字节
unsigned long double 8字节
unsigned double 4字节
四:字符串型
string 32字节
五:指针类型
所有类型的指针都是 4字节
六:函数
除了void型。其他的函数占有的字节数等于函数的返回类型所占有的字节数。与函数体内部无关。
如:float fun(){ return 2;}
sizeof(fun()) = 4
七:结构体、类
内部各数据类型占用之和,注意边界对齐。
如: struct fun1
{
int a; //4
double b; //8
char c; //1
};
sizeof(fun1)=24
truct fun2
{
int a; //4
char c; //1
};
sizeof(fun2)=8
特殊:
struct fun3
{
string a; //32
char b,c,d; //3
}b;
sizeof(fun3)=36
八:联合体union
取其中占有字节数最大的数据类型所占有的字节数。