结构体
(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);