c语言sizeof计算结构大小的问题🥺

struct date //定义一个表示日期的结构体date
{ int year, month, day; };
struct stu //定义一个表示学生记录的结构体stu
{ char name[20];
struct date birthday;
int Score[4];
float ave;
};
执行printf(“%d\n”,sizeof(stu));语句,输出结果是( )。
A.40
B.41
C.52
D.53
这个怎么用sizeof计算结构体大小

1个date包含3个int字段,总计占用 3 * 4 = 12 个字节
1个stud包含

  • 1个长度为20的char数组, 占用:20 * 1 = 20 个字节
  • 1个date,占用: 12个字节
  • 1个长度为4的int数组,占用:4 * 4 = 16 个字节
  • 一个float字段,占用 4 个字节
    所以,sizeof(stud) 为 20 + 12 + 16 + 4 = 52
可以查看手册:c语言--sizeof 运算符 中的内容