“字节对齐“
结 构体的长度一定是最长的数据元素的整数倍。
struct s
{int a;
char b;
double c;
};
sizeof(s)=16=(4+4+8);
char var[10];
int f(char var[])
{
return sizeof(var);//输出4
}
//空类所占空间1;单一继承空类1;多重继承空类仍1;但是虚继承涉及虚表,所占空间4
class A
{};
class A1
{};
class B:public A
{};
class C:public virtual B
{};
class D:public A,public A1
{};
int main()
{
cout<<sizeof(A)<<endl;//1
cout<<sizeof(B)<<endl;//1
cout<<sizeof(C)<<endl;//4
cout<<sizeof(D)<<endl;//1
return 0;
}
//sizeof()计算栈中代码的字节长度
//类中含静态变量时,它存储在全局数据区。
class A
{
static int s;//1此时相当于计算空类
};
class A
{
double a;
static int s;
};
int main()
{
cout<<sizeof A<<endl;//8
return 0;
}