一道关于共用体的题。

img

这个东西跟机器有关啊,小端序下,1是01 00 00 00(从低地址开始书写),那么c[0]就是1,c[1]是0;如果是大端序,则1是00 00 00 01,这时c[0],c[1]都是0。
还有一种非常少见的PDP端序,我记得是四字节分为两组两字节存储,组内小端序,组间大端序,例如0x12345678就是从低地址开始是34 12 78 56。这样,1就存储为00 00 01 00,这时c[0],c[1]也都是0。
如果int是16位(比较老的机器,现代机器应该见不到这样的了),那么1就是00 01或01 00。
综上所述,有1 0,0 1,0 0三种可能,其中0 1仅在16位大端序int的老机器上出现,1 0出现在intel这样的小端序机器上,0 0出现在PDP的32位整数或32位PPC这样的大端序机器上。