由于c/c++尝尝笔试会考到sizeof的考点,所以我就总结一下,分享给大家,希望能够带来帮助sizeof:一个对象或者其他内型所占内存的字节数
基本数据类型
sizeof(int) 4
sizeof(float)4
sizeof(long int)8
sizeof(short int)2
sizeof(char )1
指针变量
指针变量的所占的内存大小都是相等的,所以sizeof(指针变量名)=4;
int *x;
char *str;
sizeof(x)=sizeof(str)=8;我的编译结果是8,估计有的会是4,跟编译器有关
sizeof(*x)=4;sizeof(*str)=1;
数组
char str[]="hello";sizeof(str)=6;末尾有一个‘\0’,而strlen(str)=5,这是两者最大的区别
int a[10];sizeof(a)=40;
结构体
strcut person
{
int age;
char *name;
}
}
sizeof(age)+sizeof(name)=1+8=9;由于结构体内存大小是元素中最大结构长度的最小公倍数,
所以9不是8的最小公倍数,补齐就是16,则sizeof(struct person)=16;
|
|