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

需积分: 0 1 下载量 147 浏览量 更新于2024-08-19 收藏 86KB PPT 举报
"这篇教程主要介绍了C++中的数据结构,特别是访问数组元素的方法,同时还涵盖了Typedef、枚举、结构体等基础知识。" 在C++编程语言中,数据结构是组织和管理数据的重要手段,而数组是其中最基础的数据结构之一。数组允许我们在内存中连续存储同一类型的多个元素,通过索引来访问这些元素。本教程的第四讲深入讲解了如何在C++中使用数组,以及 Typedef、枚举和结构体等相关概念。 首先,`Typedef` 是C++提供的一种类型别名机制,它允许我们为已存在的数据类型创建一个新的名称。例如,`typedef double* PDBL;` 将 `double` 指针定义为 `PDBL` 类型,使得代码更具可读性。`Typedef` 并不创造新的类型,而是为现有的类型提供一个更有意义的代号。这在处理复杂类型如指针、模板或标准库类型时特别有用,如 `typedef std::vector<std::string> StringVector;`。 接着,教程介绍了枚举(`enum`)类型,这是一种用于定义一组常量的机制。例如,`enum open_modes {input=1, output, append};` 定义了三个常量 `input`, `output`, 和 `append`,分别赋值为1, 2, 3。枚举变量可以用来表示有限的选项,但需要注意的是,直接打印枚举变量的名字是不可行的,通常需要转换成对应的整数值或者使用字符数组来表示。 结构体(`struct`)是C++中复合数据类型的一种,它允许我们将多个不同类型的变量组合在一起,形成一个有组织的信息结构。如 `Struct student` 示例所示,结构体可以包含字符串、整数等不同类型的成员。在面向对象编程中,类通常取代结构体,因为类提供了封装、继承和多态等高级特性。结构体的内存分配是在声明变量时进行的,其内存布局在声明结构体类型时就已经确定。 数组的定义和初始化是C++编程的基础。数组可以按两种方式初始化:直接初始化,如 `int ia[3] = {0, 1, 2};` 或者通过循环初始化,如 `int ia[3]; for (int i = 0; i < 3; i++) ia[i] = i;`。数组的访问遵循以下要点:(1)元素是按顺序存储的;(2)下标从0开始;(3)常用循环遍历数组元素。数组名本身代表数组的第一个元素的地址,因此,表达式 `i[1,2]=99` 是错误的,因为它不是一个有效的访问语法,正确的应该是 `i[1] = 99` 或 `i[2] = 99`。 课后实践部分鼓励学生自学联合体(`union`),并理解其与结构体的差异,以及如何阅读涉及联合体的示例代码。此外,还提到了结构体作为函数参数的传递方式,包括使用引用和指针。 这篇教程详细介绍了C++中访问数组元素的技巧,同时也涵盖了一些基本的数据结构概念,如Typedef、枚举和结构体,为初学者提供了深入学习C++数据结构的良好基础。