一:整形

      int                             4字节

      long int                     4字节

      short int                   2字节

      unsigned int             4字节

      unsigned long int     4字节

      unsigned short int    2字节

二:字符型

      char                          1字节

      unsigned char           1字节

三:浮点型

      float                              4字节

      double                          8字节

      long double                  8字节

      unsigned long double   8字节

      unsigned double           4字节

四:字符串型

      string                           32字节

五:指针类型

      所有类型的指针都是 4字节

六:函数

      除了void型。其他的函数占有的字节数等于函数的返回类型所占有的字节数。与函数体内部无关。

如:float  fun(){ return 2;}

      sizeof(fun()) = 8--------这里是4

      

七:结构体、类

      内部各数据类型占用之和,注意边界对齐

如: struct fun1
 {
  int a;   //4
  double b;  //8
  char c;     //1
 };

sizeof(fun1)=24

truct fun2
 {
  int a;   //4
  char c;     //1
 };

sizeof(fun2)=8

特殊:

    struct fun3
    {
      string a;   //32
      char b,c,d;     //3

    }b;

sizeof(fun3)=36

八:联合体union

      取其中占有字节数最大的数据类型所占有的字节数。

09-29 16:55