C++ sizeof

 1 #include<iostream>
 2 using namespace std;
 3 class Small{};
 4 class LessFunc{
 5     int num;
 6     void func1(){}
 7 };
 8 class MoreFunc{
 9     int num;
10     void func(){}
11     int func2(){return 1;}
12 };
13 class NeedAlign{
14     char c;
15     double d;
16     int i;
17 };
18 class Virtual{
19     int num;
20     virtual void func();
21 };
22 int main(){
23     cout<<sizeof(Small)<<endl;
24     cout<<sizeof(LessFunc)<<endl;
25     cout<<sizeof(MoreFunc)<<endl;
26     cout<<sizeof(NeedAlign)<<endl;
27     cout<<sizeof(Virtual)<<endl;
28 }
29 输出:
30 1
31 4
32 4
33 24
34 8

1、不允许有长度为0的数据类型存在,所以Small 占1个字节空间

2、成员函数不占用空间。

3、数据对齐,目的提高CPU的存储速率。

4、如果一个类中有虚函数,则会具有指向虚函数的指针空间。

5、sizeof用于数组是,读取的是数组的全部占用空间,作用于指针时,不管指针指向的是什么,大小一律是4个字节。

原文地址:https://www.cnblogs.com/teng-IT/p/5981624.html