c++union

a)

#i nclude <stdio.h>
union
{
int i;
char x[2];
}a;


void main()
{
a.x[0] = 10;
a.x[1] = 1;
printf("%d",a.i);
}
答案:266 (低位低地址,高位高地址,内存占用情况是Ox010A)

b)

     main()
     {
          union{                  
               int i;
               struct{            
                    char first;
                    char second;
               }half;
          }number;
          number.i=0x4241;        
          printf("%c%c/n", number.half.first, mumber.half.second);
          number.half.first='a';  
          number.half.second='b';
          printf("%x/n", number.i);
          getch();
     }
答案: AB   (0x41对应'A',是低位;Ox42对应'B',是高位)

       6261 (number.i和number.half共用一块地址空间)

你可能感兴趣的:(c++union)