认识联合体C++

#include <iostream>

using namespace std;

union {
    int i;
    int c;
    char x[2];
}a;
int main()
{
    cout << "Hello world!" << endl;
    a.x[0] = 10;
    a.x[1] = 1;
    cout <<a.c <<endl;
    return 0;
}
联合体中个成员使用同一个地址,如x[2],赋值时x[0]使用地地址,x[1]使用高地址,所以存储的是010A。输出为266。以为使用的是同一个地址所以cout <<a.c <<endl;和cout <<a.i <<endl;输出的是同一个地址的数据。
posted @ 2011-09-07 12:50  java简单例子  阅读(316)  评论(0编辑  收藏  举报