C语言,关于共同体和结构体,程序我能看懂,但是结果为什么是这样啊?

2025-02-24 12:53:15
推荐回答(1个)
回答1:

共同体变量u大小为四个字节
00000000 00000000 00000000 00000000
u.s.a=9;u.s.b=10;/*这时成员s用效,s中的a和b分别占2个字节*/
所以:
00000000 00001010 00000000 00001001
u.c=u.s.a*u.s.b;/*这时成员c有效,c只占一个字节,最低位的一个字节*/
所以:
00000000 00001010 00000000 01011010
u.x=u.s.a+u.s.b;/*这时成员x有效,x占两个字节,最低位两个字节*/
所以最终四个字节:
00000000 00001010 00000000 01100100
结果应该是:u.x=100,u.c=d u.s.a=100,u.s.b=10
不知道有没有说清楚啊。。。