c语言中结构体内存体内存单元大小
结构体内存体内存单元
众所周知结构体内存单元有个原则:
内存对齐:即结构体内存单元字节个数是结构体内 所占最多的字节个数数据类型整数倍
#include <stdio.h>
#include <stdlib.h>
struct Sample
{ short int a;
char b[10];
float c;
double d;
}s;
//s是Sample类型变量
int main(int argc, char *argv[])
{
printf("变量s所占字节个数%d\n",sizeof(s));
printf("a %X\n",&s.a); // 短整型 2个字节
printf("b %X\n",s.b); //数组名字是首地址不需取址符号
//一个 字符占一个字节
printf("c %X\n",&s.c); //单浮点类型 占4个字节
printf("d %X",&s.d); // 双浮点类型占8个字节
system("PAUSE");
return 0;
}
运行如下:
结构体的内存字节数 为 **最大数据类型字节数double(8个字节)**的三倍
这种规则也叫***内存对齐***,我们修改结构体内的字符数长度为11
结构体内存变化如下:
还没有评论,来说两句吧...