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
void Func(char a[100])
{
cout<< sizeof(a)<<endl;//4字节,而不是100字节,数组退化为指针!《高质量C/C++编程7-3-3》
}
特别注意,类和结构体的大小(
内存对齐和填充的概念
),
struct {
char c;
int i;
short s;
}str_1;
struct {
char c;
short s;
int i;
}str_2;
sizeof(str_1)=4+4+4=12;
sizeof(str_2)=4+4=8;
union 联合具体情况而定。