sizeof 相关的小知识

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;


sizeof 相关的小知识

上一篇:linux VI search command 搜索 加入行号


下一篇:Cheatsheet: 2014 01.15 ~ 01.30