C++中的用户自定义类型:结构体、共用体和枚举

需积分: 0 0 下载量 95 浏览量 更新于2024-08-15 收藏 288KB PPT 举报
"这篇内容主要介绍了C++中的用户自定义数据类型,特别是结构体类型、共用体和枚举类型。通过typedef关键字可以创建新的类型名,使得代码更具可读性和可维护性。" 在C++编程语言中,用户可以根据实际需求定义自己的数据类型,以扩展基本的数据类型功能。这里,我们重点关注的是结构体(structure)、共用体(union)和枚举(enumeration)。 7.1 结构体类型 结构体是一种复合数据类型,允许将不同类型的变量组合在一起形成一个新的数据结构。通过`struct`关键字,我们可以声明一个新的结构体类型。比如,定义一个表示学生信息的结构体`Student`,包含学号(num)、姓名(name)、性别(sex)、年龄(age)、成绩(score)和地址(addr)等字段: ```cpp struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; ``` 结构体类型定义后,可以用它来声明变量,如`Student s1;`,这样`s1`就是一个包含所有学生信息的结构体实例。 7.2 共用体类型 共用体与结构体类似,但不同之处在于,共用体内的所有成员共享同一块内存空间。这意味着,任何时候只能访问其中的一个成员,因为它们是相互覆盖的。共用体的声明格式也使用`struct`关键字,但实际使用时需要特别注意内存管理和访问规则。 7.3 枚举类型 枚举类型(enumeration)用于定义一组命名的整数常量,便于编程时使用。例如,定义一个表示一周天数的枚举类型: ```cpp enum Weekdays {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; ``` 这里的`Monday`到`Sunday`都是整数常量,它们的值通常从0开始递增。 7.4 用typedef声明类型 `typedef`关键字可以创建新的类型别名,提高代码的可读性。例如,将上述的`Student`结构体类型重命名为`StudentInfo`: ```cpp typedef struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; } StudentInfo; ``` 之后,我们就可以使用`StudentInfo`来定义变量,而不用每次都写完整的结构体声明。 通过这些自定义数据类型,程序员可以更好地组织和管理代码,使代码更加模块化,同时增加了代码的可读性和可维护性。在实际开发中,这些工具对于构建复杂的系统和解决特定问题是非常有价值的。