32位系统下sizeof()

sizeof()不是函数。

32位系统下:

bool    1(C没有bool类型)

char    1

short   2

int      4

long    4

float    4

double 8

sizeof(指针) 4 如:int* 4,char*4,double* 4。。。

char ch[]={"zhang"};    sizeof(ch)=6

 

1 void Func(char a[100])
2 {
3        cout<< sizeof(a)<<endl;//4字节,而不是100字节,数组退化为指针!《高质量C/C++编程7-3-3》
4 }

 

特别注意,类和结构体的大小(内存对齐和填充的概念),

 1 struct {
2 char c;
3 int i;
4 short s;
5 }str_1;
6
7 struct {
8 char c;
9 short s;
10 int i;
11 }str_2;

sizeof(str_1)=4+4+4=12;

sizeof(str_2)=4+4=8;

 

union 联合具体情况而定。

posted @ 2012-02-24 22:11  logzh  阅读(2306)  评论(0)    收藏  举报