打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
4.5 共用体+枚举

共用体:union

  • 共用体(union)是一种数据格式,能够存储不同的数据类型,但只能同时存储其中的一种类型。

  • 结构可以同时存储int、long和double,共用体只能存储int、long和double。

  • 共用体的句法:

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

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

    共用体每次只能存储一个值

  • 共用体,当数据项使用两种格式或更多种格式,但不会同时使用时,可节省空间。

struct widget
{
  char brand[20];
  int type;
  union id
  {
    long id_num;
    char id_char[20];
  } id_val;
}

widget prize

if (prize.type == 1)
  cin >> prize.id_val.id_num;
else
  cin >> prize.id_val.id_char;

  • 共用体常用于操作系统数据结构或硬件数据结构。


枚举:enumeration

enum spectrum {red, orange, yellow, green, bule, violet};

  • spectrum被称为枚举(enumeration)。red、orange等常量叫做枚举量(enumerator)。

  • 枚举变量的属性:

    1. 在不进行强制类型转换的情况下,只能将定义枚举时使用的枚举量赋给这种枚举的变量。

    2. 对于枚举,只定义了赋值运算符,没有定义算数运算。

    3. 枚举量是整型,可被提升为int类型,但int类型不能自动转换为枚举类型。

  • 设置枚举量的值

    1. 可以使用赋值运算符来显示地设置枚举量的值。指定的值必须为整数。

    2. 后面没有被初始化的枚举量的值将比其前面的枚举量大1。

    3. 可以创建多个值相同的枚举量。

  • 枚举的取值范围

    1. 通过强制类型转换,可以将取值范围中的任何整数赋给枚举变量,即使这个值不是枚举值。

    2. 取值范围:首先,找到枚举量的最大值。找到大于这个最大值的,最小的2的幂,将它减去1如枚举量的最大值为101,在2的幂中,比这个数大的最小值为128,因此取值上限为127。其次,找到枚举量的最小值。如果它不小于0,则取值下限为0;否则采用与寻找上限方式相同的方式,最后加上负号如最小值为-6,而比它小的、最大的2的幂是-8,因此下限为-7。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
共用体的定义和使用
C语言共用体(Union)
用C语言编程,如何节省存储空间?
从零开始学习C语言构造数据类型共用体
编程中国
UC头条:C语言编程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服