浅谈c++中结构体和共用体的区别

在c++中,结构体(struct)和共用体(union)是两种很相似的复合数据类型,都可以用来存储多种数据类型,但是两者还有很大的区别。

  1. 结构体(struct)

    结构是用户自定义的类型,比数组更灵活,同一个结构可以存储多种类型的数据。

    结构的创建包括两步,首先定义结构描述---描述并标记了能够存储在结构中的各种数据类型。

    struct  shoes {
    
          char name[20];
    
          int size;
    
          double price;
    
    };

     

    下面就可以按描述创建结构变量。

    shoes sport;

    [struct] shoes boot;(c++中struct 可以省略)

    在c++中,结构声明可以说是定义了一种新类型,结构名相当于基本类型名。使用结构体,通过结构变量名使用成员操作符(.)来访问各个成员,如sport.name。访问类成员函数的方式就是从访问结构成员变量的方式衍生而来的。

  2.  

    共用体(union)

    共用体也是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。也就是说,结构可以同时存储int、long和double,共用体只能存储int、long或者double中的一种。共用体的句法与结构类似,但含义不同。

    union one4all {
    
          int int_val;
    
          long long_val;
    
          double double_val;
    
    };

     

    可以使用one4all变量来存储int、long 或double,条件是在不同的时间进行。

    定义一个共用体变量,one4all pail;

    pail使用成员操作符访问其中变量时只有一个成员是当前成员,即one4all中的三个变量共享一个地址,当pail访问int_val时,内存中存储的就是int型。

    共用体的用途之一就是,当数据使用两种或更多种格式(但不会同时使用)时,可以节省空间。

转载于:https://www.cnblogs.com/howie-liang/p/8006965.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值