#include<iostream>
using namespace std;
class A
{
public:
int i;
}
class B
{
public:
char ch;
}
classC
{
public:
int i;
short j;
}
class D
{
public:
int i;
short j;
char ch;
}
class E
{
public:
int i;
int ii;
short j;
char ch;
char chr;
}
class F
{
public:
int i;
int ii;
int iii;
short j;
char ch;
char chr;
}
int main()
{
cout<<sizeof(int)<<endl;//长度为4
cout<<sizeof(char)<<endl;//长度为1
cout<<sizeof(short)<<endl;//长度为2
cout<<sizeof(A)<<endl;//长度为4
cout<<sizeof(B)<<endl;//长度为1
cout<<sizeof(C)<<endl;//长度为8而不是6
cout<<sizeof(D)<<endl;//长度为8而不是7
cout<<sizeof(E)<<endl;//长度为12
cout<<sizeof(F)<<endl;//长度为16
return 0;
}
刚开始写这个程序的时候很困惑,后来才知道由于平台的原因,不同数据类型的数据会分布在不同的内存上,所以实际上占用内存的大小不是所有数据的理论占用值相加,而是把某几个数据补齐了以后相加。具体的字对齐算法我还不是很懂,今后有机会慢慢研究,现在姑且先理解这个概念吧。