1、在32位机器上,指针的大小为4,64位系统上,指针的大小为8
int *p;
cout << "size of pointer: " << sizeof(p) << endl;
输出结果为 4
2、数组的大小,和数组作为形参,退化成指针的情况
(1)数组大小
int a[10];
cout << "size of int array[10]: " << sizeof(a) / sizeof(int) << endl;
输出结果为10
(2)数组退化为指针
int ArraySizeFalse(int array[])
{
return sizeof(array);
}
cout << "array degenerates into a pointer: " << ArraySizeFalse(a) << endl;
输出结果为4
解决方法,传数组的引用,但数组大小需定义。
3、关于空类型,包含虚函数的类型的大小
(1)空类型:不含任何的成员变量和成员函数;和仅包含默认构造默认析构的类
class EmptyClass{
};
class ClassWithConstructor{
public:
ClassWith