C++ 数据结构讲解:枚举、结构体与数组

需积分: 0 1 下载量 176 浏览量 更新于2024-08-19 收藏 86KB PPT 举报
"这篇教程详细介绍了C++中的数据结构,特别是枚举类型的使用,以及结构体和数组的相关知识。" 在C++编程语言中,枚举类型(enum)是一种非常实用的数据类型,它允许程序员定义一组相关的整数常量。在本教程的“第四讲 C++简单数据结构”中,枚举类型被作为一个重要的主题进行讲解。通过`enum`关键字,我们可以创建一个枚举,比如`open_modes`,它可以用来表示文件打开的不同模式,如`input`、`output`和`append`。枚举常量默认从0开始赋值,但可以手动指定,如`input=1`。 声明枚举类型的变量,如`open_modes om;`,然后可以将枚举常量赋值给它,例如`om=input;`。然而,需要注意的是,枚举变量的名字不能直接打印,通常需要通过转换或映射到相应的字符串来显示。例如,可以使用字符数组来实现这一目的。 `typedef`是另一种在C++中定义类型别名的方法,它不创建新的类型,而是给已存在的类型起一个新名字。例如,`typedef double wages;`使得`wages`成为`double`类型的别名。这在类型名称较长或者需要更具有描述性的类型名称时特别有用。 结构体(struct)是C++中的复合数据类型,用于组合不同类型的数据。例如,`Struct student`定义了一个包含姓名和年龄的结构体。结构体变量如`Stu1`可以在声明后进行初始化,如`Stu1.name="张三"`。结构体的内存是在声明变量时分配的,其内部成员按照内存布局顺序存储。 在C++中,结构体可以作为函数的参数,通常有两种传递方式:引用和指针。使用引用方式可以避免复制结构体的开销,而指针则允许在函数内部修改结构体的内容。课程中提供了两个示例程序`Pgm15-3.cpp`和`Pgm15-4.cpp`来展示这两种方法。 数组是C++中另一种基础数据结构,它允许存储同一类型的多个元素。数组可以通过直接初始化或循环初始化来创建。数组的索引从0开始,且可以用循环遍历所有元素。数组名本身代表数组首元素的地址,因此在上述示例`i[1,2]=99`中,这个表达式实际上是错误的,因为它尝试对数组进行两次赋值。 课后实践部分提示学习者了解联合体(union),这是一种特殊的复合类型,它可以存储不同类型的数据,但只占用最小的数据类型的大小。此外,学习者应理解并能够解释数组的初始化和操作,尤其是数组下标从0开始的规则。 总结起来,这篇教程涵盖了C++中的一些基础数据结构,包括枚举类型、typedef、结构体、数组及其使用方法,对于初学者来说是一份很好的学习资料。