C语言习题,求解释!谢谢!

以下程序的运行结果是( )。
#include "stdio.h"
main()
{
struct date
{int year,month,day;}today;
printf("%d\n",sizeof(struct date));
}
A)6 B)8 C)10 D)12

这与所用的编译系统有关。
如果是32位编译器,则每个int是4个字节,会输出12,选D。

若是16位编译器(如Turbo C),则每个int是2个字节,会输出6,选A。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-25

int 占据4个字节,year  day  month 总共12个字节 

追问

typedef union { long x[1];
int y[4];
char z[10];
}M;
M t;
main()
{ rintf("%d\n",sizeof(t));
}
A)32 B)26 C)10 D)4
谢谢‘!
请问 那这个呢?

追答

很抱歉,你的参考书有问题,答案是16个字节,这一点我也不明白为什么   我的编译器是vc++ 6.0

本回答被提问者采纳
第2个回答  2014-03-25
D 整形数据在C元语言中占4Byte,3*4=12

第二个共用体选 C
第3个回答  2014-03-25
输出结构体date 的字节长度,int型为4 ,year,month,day
三个int型,答案为12
第4个回答  2014-03-25
结构体的长度是其结构体成员长度的总和
相似回答