📅  最后修改于: 2023-12-03 15:13:45.717000             🧑  作者: Mango
结构体是由多个不同数据类型的变量组成的数据类型,它可以将这些变量封装成一个整体来处理。结构体定义如下:
struct structure_name
{
data_type element_name1;
data_type element_name2;
...
data_type element_nameN;
};
例如,定义一个学生结构体:
struct Student
{
std::string name;
int age;
char gender;
};
就可以创建一个拥有姓名、年龄和性别属性的学生类型。在程序中,可以使用.
来访问结构体的成员:
Student student1;
student1.name = "Tom";
student1.age = 18;
student1.gender = 'M';
和结构体不同,联合体中的各个成员共用同一块内存空间,联合体的大小等于其最大成员的大小。联合体的定义如下:
union union_name
{
data_type element_name1;
data_type element_name2;
...
data_type element_nameN;
};
例如,定义一个联合体:
union MyUnion
{
int x;
float y;
char z;
};
x、y和z这三个成员共享同一个内存空间。
联合体的一种常见用法是用来存储不同类型的数据,例如:
union Data
{
int i;
float f;
char str[20];
} data;
可以根据需要将不同类型的数据存储到data中,占用同一块内存空间。
枚举类型是一种用户定义的类型,它可以将一组常量定义为一个可枚举的列表。枚举类型的定义如下:
enum enum_name
{
enumerator1,
enumerator2 = value,
...
enumeratorN
};
其中,enumerator1~enumeratorN是枚举常量的名称,value是对enumerator2的值进行初始化,如果前面一个枚举常量没有初始化,其值默认为上一个枚举常量的值加1。
例如,定义一个颜色的枚举类型:
enum Color
{
RED,
GREEN,
BLUE
};
就可以使用RED、GREEN和BLUE来代表不同的颜色。
枚举类型还可以使用enum class关键字来定义:
enum class Color
{
RED,
GREEN,
BLUE
};
这样定义的枚举类型成为了一个作用域枚举类型,枚举值只能通过枚举类型进行访问,避免了枚举常量名相同所产生的命名冲突问题。
以上就是C++中的结构体、联合体和枚举类型的介绍,它们都是C++中用于组织和管理数据的重要机制。