如题所述
这个结果是49,分析如下:
C语言中,int类型占4个字节,char类型占1个字节,float类型占4个字节,指针类型占4个字节。
将结构体中定义的各个数据类型所占字节数相加,就能得到结果。
根据题目信息,结构体中定义了整型数组,共10个元素,所以有40个字节,在加上其他的几种类型,即
40 + 1 + 4 + 4 = 49。
最终结果为49个字节。
如果未指定1字节对齐的话
struct cat
{
int a[10]; // 40
charch;//1//因为4字节对齐这里会补3个字节
float f; //4
double *p; //4
}cat1;
是52
===============
如果是1字对齐的话
char ch; //1
那么是 49
在默认不说明前提的情况下 都是4字节对齐