C++自定义数据类型:结构体、共用体与枚举

需积分: 10 0 下载量 91 浏览量 更新于2024-08-24 收藏 288KB PPT 举报
"这篇内容主要讲述了C++中的用户自定义数据类型,特别是通过typedef声明新的类型,以及结构体类型的详细使用。" 在编程语言中,C++提供了丰富的基本数据类型,如int、float、double、char等。然而,面对复杂的编程需求,这些基本类型可能不足以满足所有场景。为了解决这一问题,C++允许程序员自定义数据类型,包括结构体(structure)、共用体(union)、枚举(enumeration)和类(class)。这些自定义类型使得我们可以根据实际需求组合不同类型的变量,形成更符合业务逻辑的数据结构。 在自定义数据类型中,结构体是一种常用的方式,它允许我们将多个不同或相同的类型数据组合在一起,形成一个新的复合类型。结构体类型通过`struct`关键字声明,例如: ```cpp struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; ``` 在这个例子中,`Student`是一个结构体类型,包含了学号(num)、姓名(name)、性别(sex)、年龄(age)、分数(score)和地址(addr)等属性。每个属性都是结构体的一部分,它们可以被看作是一个整体,便于管理和操作。 在声明了结构体类型后,我们可以用它来定义变量,如下所示: ```cpp Student s1; // 定义一个名为s1的Student类型变量 ``` 这里,`s1`就是一个包含了所有结构体成员的实体,我们可以通过`.`操作符来访问和修改它的各个属性,如`s1.num = 123;`。 除了结构体,`typedef`关键字用于创建新的类型别名,这有助于提高代码的可读性和一致性。例如,如果我们希望将`Student`结构体定义为一个类型别名`STUDENT`,可以这样做: ```cpp typedef struct Student STUDENT; ``` 之后,我们就可以使用`STUDENT`来定义变量,就像使用`Student`一样: ```cpp STUDENT s2; ``` `typedef`的使用有助于区分自定义类型和内置类型,通常自定义的类型名用大写字母表示,以区别于系统标准类型。 此外,`enum`枚举类型允许我们创建一组命名的整数值,这在处理固定集合的选项时非常有用。而`union`共用体则允许存储不同类型的数据,但所有数据共享同一块内存,这在特定场景下可以节省内存。 C++中的自定义数据类型极大地扩展了编程的可能性,使我们能够构建更符合实际需求的复杂数据结构,提高代码的灵活性和可维护性。