C++-数据类型--联合

本文介绍了C++中的联合类型(union),通过示例展示如何定义和使用联合,说明了联合内的不同数据类型共享同一块内存空间,从而实现同一数据的多种表现形式。在示例中,对联合的整型成员赋值后,字符数组和短整型数组也反映了该值的不同表示,分别输出了对应的字符和16进制数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联合类型union定义与结构体类似,也可以定义不同的数据类型,不过,这些数据类型共用首地址,所以对其中一个赋值后,其他变量也就同时赋值了。

程序中只对联合中的数a赋值,然后,两个数组也被同时赋值了,输出的数据只不过是同一个数的不同形式。

当需要同一个数据以不同的数据类型输出时,可以采用联合类型。

#include "iostream"


using namespace  std;


int  main()
{

    int num;
    union xuexi{

        int a;
        char array[2];
        short array1[2];
    };

    xuexi bailiang; //C语言应为:union xuexi bailiang,C++ 中定义变量时可省略关键字 union,struct,enum;


    cout << "Please enter a number:" << endl;
    cin >> bailiang.a ;

    cout << endl << bailiang.a << endl;
    cout << bailiang.array[0] << ends;
    cout << bailiang.array[1] << ends << endl;

    cout << bailiang.array1[0] << ends;
    cout << bailiang.array1[1] << ends;

 

运行结果为:

12345分解成两个16进制的数是 0x30 和0x39,也就是字符“0”和字符“9”。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值