正在加载……
专注、离线、切勿分心
Union
union的首地址是固定的,大小以成员变量中所需内存最大的一个为准(sizeof());
#include <iostream>
using namespace std;

union test
{
        char mark;
        long num;
        float score;
}a;

int main()
{
        cout<<sizeof(char)<<endl;
        cout<<sizeof(long)<<endl;
        cout<<sizeof(float)<<endl;
        // cout<<a<<endl;  // wrong
        a.mark = 'b';
        cout<<a.mark<<endl;     // 输出'b'
        cout<<a.num<<endl;     // 98 字符'b'的ACSII值
        cout<<a.score<<endl;    // 输出错误值
        cout<<"sizeof(a)="<<sizeof(a)<<endl;

        a.num = 99;
        cout<<a.mark<<endl;    // 输出空
        cout<<a.num<<endl;     // 输出10
        cout<<a.score<<endl;    // 输出错误值
        cout<<"sizeof(a)="<<sizeof(a)<<endl;

        a.score = 100.0;
        cout<<a.mark<<endl;    // 输出空
        cout<<a.num<<endl;    // 输出错误值
        cout<<a.score<<endl;   // 输出10
        cout<<"sizeof(a)="<<sizeof(a)<<endl;
        system("pause");
        return 0;
}




posted on 2017-04-23 21:02  正在加载……  阅读(155)  评论(0编辑  收藏  举报