sizeof是计算对象所占的字节个数,通常用来查看变量或结构体等所占的字节个数。
在32位系统中:
char的sizeof值为1,
char是我们编程能用的最小数据类型。
short的sizeof值为2;
int、float、long为4;
double为8;
所有的指针的sizeof值都为4。
数组的sizeof值等于数组所占用的内存字节数,
char c1[] = "abc";
int c2[3];
sizeof( c1); // 结果为4,字符末尾还存在一个NULL终止符
sizeof( c2 ); // 结果为3*4=12(因为c2数组中的每一个成员都是int型,占四个字节)
结构体中的sizeof
typedef struct _test {
int i; //4
float f; //4
char c; // 1
} test;
test *pt;
printf("int i的字节:%d/n",sizeof(pt->i)); //输出4
printf("float f的字节:%d/n",sizeof(pt->f)); //输出4
printf("char c的字节:%d/n",sizeof(pt->c)); // 输出1
printf("结构体test:%d/n",sizeof(test)); //输出12,涉及到字节对齐