两道C语言结构体的问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:43:08
1.若以下定义和语句,则sizeof(a)的值是( ),而sizeof(b)的值是( )
struct{int day; char mouth; int year;}a,*b;
b=&a

2.设定义了struct ss{float a[2]; int b;}则函数sizeof(struct ss)的值为( )

这种类型的题怎么做呢?请大家帮忙解答一下,尽量详细一些,万分感谢!

a是一个数据结构,分配空间时int占用4个自己,而char本来占用1个字节,还内存地址中还剩下3个字节未占用,但装一个int空间不够,只能从下一个地址分配4个字节,所以为了位对齐,char也占用4个字节,所以是12字节。

b是一个指针,所以大小刚好是机器位数,4个字节

ss中float是两维数组,占用8字节,int占4字节,所以一共也是12字节!

12,4
A的字节是三个字节的合成 为4+4+4;

如果可能再TC里面是2+2+2;

第二道题目 应该是4*2+4=12

这得看环境,在C里 int是2字节,而C++ int是4字节