第1个回答 2010-01-21
考点是共用体和结构体的长度。
下面说一下他们的不同:
所谓共用体(也叫联合体)就是公用一段内存大小,他的成员的地址都是同一地址, 所以共用体占得内存长度=最大的成员的长度。
结构体类型不同他是将具有一定联系的数据组成一个整体,包含若干不同的数据项,系统会对他的每个成员分配内存。所以结构体的内存长度=每个成员们占得内存之和
=10+2+10+8=30选B
第2个回答 2010-01-21
B(30)
sizeof(struct date):2+10+8=20
sizeof(max):2*5=10
联合体DATE的大小按最大的,即int k[5],10个字节
char:1
int:2,也可能是4(本题为2,因为没52这个答案)
long:4
float:4
double:8
DATE:10本回答被提问者采纳
第3个回答 2010-01-21
你的int是多长的?
typedef union
{
long i;
int k[5]; //这个的长度就是联合体的长度5*sizeof(int)
char c;
}DATE;
struct date
{
int cat;//sizeof(int)
DATE cow;//5*sizeof(int)
double dog; //sizeof(double)=8
}too;
sizeof(struct date) = 8+6*sizeof(int)
sizeof(max) = 5*sizeof(int)
加起来8+11*sizeof(int)
如果sizeof(int)=2,那么结果就是B.30
第4个回答 2010-01-21
两个共用体的长度相加即