当前位置: 代码迷 >> 综合 >> 结构体、共用体、枚举
  详细解决方案

结构体、共用体、枚举

热度:31   发布时间:2024-02-12 07:54:09.0

结构体

(1)定义

可以存储多个不同类型的元素

(2)创建

省略结构体名称,但是之后便无法创建该类型的变量

//创建一个inflatable类型的结构体,里面有结构成员,然后可以创建这种类型的变量,通过变量访问结构成员
struct inflatable
{char name[20];float volume;double price;
};

(3)赋值方式

//列表赋值('='可以省略)
inflatable guest = { "Glorious Gloria",1.88,29.99 };
//全部初始化为0
inflatable guest{}
//输入赋值
inflatable item;
cin.getline(item.name, 20);
cin >> item.volume;
cin >> item.price;

(4)以初始化的方式创建变量

struct inflatable
{char name[20];float volume;double price;
}m_01, m_02;

(5)创建结构体数组

inflatable gifts[100];

共用体

(1)定义

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

(2)创建

基本与结构体形式相同,只需将struct换为union

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

(3)赋值

创建该共用体的变量,该变量只能存储所有成员中的一个,需不同时间进行,之前存储的变量就清空

one4all pail;
pail.int_val=15;
pail.double_val=1.38

(4)特点

①由于共用体每次只能存储一个值,因此它必须有足够的空间来存储最大的成员,共用体的长度为其最大成员长度

②由于共用体的所有成员只能每次用一个,因此节省空间

枚举

(1)定义

一种创建符号常量方式,允许定义新的类型,但必须按严格限制进行

(2)创建

可以赋值,默认第一个元素对应为0,若有元素被赋值,后一个元素比前一个元素大1,前一个元素比后一个元素小1,但不会小于0)

enum bits{first,second=100,third};

(3)枚举取值范围

可通过强制类型转换,将取值范围中的任何整数值赋给枚举变量

//6不是枚举值,但它位于枚举定义的取值范围
enum bits{one=1,two=2,four=4,eight=8}
bits myflag;
myflag=bits(6);

 

  相关解决方案