1. char *pStrTest = "Test";
=> sizeof(pStrTest) == 4;
2. char szString[10];
=> sizeof(szString) == 10;
3. class A
{
};
=> sizeof(A) == 1; // 没有任何成员的时候, 编译器为其分配一个自己的内存;
4. class A
{
int a[]; // 类定义中可以不指定数组大小; 可以认为只是声明, 所以不占内存;
};
=> sizeof(A) == 1;
5. class A
{
int a[];
virtual ~A() = 0;
};
=> sizeof(A) == 4; // 增加了虚函数, 所以编译器会在类中增加一个指针成员, 用来指向类的虚函数表;
6. class A
{
int a[];
virtual ~A() = 0;
static int b; // 静态成员不会在对象实例中分配内存;
};
=> sizeof(A) == 4;