`
huobengluantiao8
  • 浏览: 1030497 次
文章分类
社区版块
存档分类
最新评论

1.共用体内存分布

 
阅读更多
共用体内存分布(创新工场)
求下列程序的输出结果(具体程序既不清楚了,考点在于union

type的内存分布):

一个联合体的各个成员占用相同的内存空间,联合体的长度等于其中最长成员的长度。

#include <stdio.h> 
#include <iostream>
#include<bitset>
using namesapce std;
union u 
{ 
    int i; 
    char x[2]; 
}a; 
int main() 
{ 
    a.x[0] = '1'; 
    a.x[1] = '2'; 
    bitset<32> bin(a.i);
    bin = a.x[0];
    cout<<"a.x[0]的二进制数为: "<<bin<<endl;
    bin = a.x[1];
    cout<<"a.x[1]的二进制数为: "<<bin<<endl;
    printf("%d\n", a.i); 
} 
a.x[0] = '1'; a.x[1] = '2'

a.x[0]的二进制数为(从高位到低位): 00000000000000000000000000110001

a.x[1]的二进制数为(从高位到低位): 00000000000000000000000000110010
共用体变量的内的各个成员都是从低字节开始公用的;
因此a.i的二进制码为
: 00000000000000000011001000110001
所以程序输出为12849.

A的ASCII码:65 a的ASCII码:97 1的ASCII是49

参考网址:http://dongfkxiang.blog.51cto.com/1792080/512825


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics