C++ 数据结构教程: Typedef, 枚举, 结构体与数组解析

需积分: 0 1 下载量 186 浏览量 更新于2024-08-19 收藏 86KB PPT 举报
"这篇教程详细介绍了C++中的数据结构,特别是数组的定义与初始化方法。" 在C++中,数组是一种基本的数据结构,用于存储同类型的多个数据项。数组的定义与初始化是编程中常见的操作,它使得我们可以一次性处理一组相关的数据。在本教程中,数组的定义和初始化方法被详细地讲解。 首先,数组可以直接初始化。例如,`int ia[3]={0,1,2};` 这行代码定义了一个整型数组`ia`,大小为3,且已初始化为0、1、2。这种方式简洁明了,适合初始化静态大小且元素数量较少的数组。 其次,如果需要通过循环来初始化数组,可以使用以下方式: ```cpp int ia[3]; int i; for(i=0; i<3; i++) { ia[i] = i; } ``` 这段代码同样定义了一个大小为3的整型数组`ia`,但通过循环逐个赋值,将数组元素设置为0、1、2。这种方法在元素数量较多或者需要按特定规则初始化时更为适用。 除了数组,教程还提到了其他的数据结构和关键字。`typedef` 是用来为现有的数据类型创建别名的,例如 `typedef double* PDBL;` 定义了一个新类型`PDBL`,等价于`double*`。这有助于提高代码的可读性,特别是当类型表达式较长或需要有意义的别名时。 枚举类型(`enum`)是另一种数据类型,它可以定义一组常量集合。例如,`enum open_modes {input=1, output, append};` 创建了一个名为`open_modes`的枚举,包含三个常量`input`、`output`和`append`,分别赋值为1、2和3。枚举类型的变量可以像普通整型变量一样使用,但通常用于表示特定的状态或选项。 结构体(`struct`)是C++中复合数据类型的一种,用于组合不同类型的数据项。如 `struct student { String name; int age; };` 定义了一个`student`结构体,包含一个字符串`name`和一个整型`age`。结构体在内存中是连续存储的,其变量如`stu1`需要额外的内存分配。结构体在面向对象编程中经常作为类的基础。 在使用结构体时,作为函数参数传递,可以使用引用或指针方式,以避免复制整个结构体的开销。如`Pgm15-3.cpp`和`Pgm15-4.cpp`所示,这两种方式各有优缺点,应根据实际需求选择。 最后,关于数组的一个思考题:`int i[3]={0,1,2}; i[1,2]=99;` 这个表达式是不合法的,因为数组下标只能是一个单一的整数。正确的做法应该是单独指定每个下标,如 `i[1]=99;` 和 `i[2]=99;`。数组的下标从0开始,所以`i[1]`对应第二个元素,`i[2]`对应第三个元素。 通过这篇教程的学习,你可以掌握C++中数组、typedef、枚举和结构体的基本概念和使用方法,进一步理解和应用C++的数据结构。对于课后实践,建议学习联合体(`union`)以及如何在实际项目中灵活运用这些知识。