经典指数          
原因
2628
浏览数
0
收藏数
 

在小端序的机器中,如果
union X
{
    int x;
    char y[4];
};
如果
X a;
a.x=0x11223344;//16进制
则:()
  • y[0]=11
  • y[1]=11
  • y[2]=11
  • y[3]=11
  • y[0]=22
  • y[3]=22

     举报   纠错  
 
切换
1 个答案

这里需要考虑存储模式:大端模式和小端模式。

大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。

小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。

union 型数据所占的空间等于其最大的成员所占的空间。对union

型的成员的存取都是相对于该联合体基地址的偏移量为0 处开始,也就是联合体的访问不论对哪个变量的存取都是从union 的首地址位置开始。如此一解释,上面的问题是否已经有了答案呢?

 
切换
撰写答案