C++编程:二维数组详解与数据结构应用

需积分: 0 1 下载量 4 浏览量 更新于2024-08-19 收藏 86KB PPT 举报
"这篇教程主要介绍了C++中的二维数组、 Typedef、枚举、结构体以及数组的相关知识,包括它们的定义、使用方法和注意事项。" 在C++中,二维数组是一种常用的数据结构,用于存储二维表格形式的数据。定义二维数组的方式如下: ```cpp float M[2][3]; // 定义一个2行3列的浮点型数组 float M[2][3]={(1.8,4.9,6.8),(6.2,2.1,3.4)}; // 初始化数组,直接赋值 ``` 在内存中,二维数组按照行优先的顺序存储,这意味着第一维的元素会被连续存储,然后是第二维的元素。 `Typedef` 是C++中用于创建类型别名的工具,它可以简化代码并增加可读性。例如: ```cpp typedef double* PDBL; // 将double指针类型定义为PDBL PDBL p; // 等价于 double* p; ``` `Typedef` 不是创建新的类型,而是为已存在的类型提供一个新名称。 枚举(`enum`)是一种定义常量集合的方式,可以方便地管理和使用一组关联的整数值。例如: ```cpp enum open_modes { input=1, output, append }; // 定义枚举类型open_modes open_modes om = input; // 声明枚举变量om并赋值 ``` 枚举变量不能直接打印其名字,但可以通过转换为字符串或使用字符数组来显示。 结构体(`struct`)允许我们将多个不同类型的数据组合在一起,形成一个新的复合类型。例如: ```cpp struct Student { std::string name; int age; }; Student stu1; // 声明结构体变量stu1 stu1.name = "张三"; // 给结构体成员赋值 ``` 结构体的内存是连续分配的,可以在内存中表示有组织的信息结构。在面向对象编程中,通常使用类(class)代替结构体。 数组是C++中基本的线性数据结构,可以按索引访问元素。数组的定义和初始化可以是: ```cpp int ia[3] = {0, 1, 2}; // 直接初始化 for (int i = 0; i < 3; i++) { ia[i] = i; // 用循环初始化 } ``` 数组的关键点在于它们是顺序存储的,下标从0开始,遍历数组通常使用循环。 数组名在C++中代表数组首元素的地址,因此,对于`int i[3] = {0, 1, 2};`,表达式`i[1, 2] = 99`是不合法的。这里试图同时访问`i[1]`和`i[2]`,这在C++中是不允许的。正确的做法是分别赋值,如`i[1] = 99`和`i[2] = 99`。 课后实践部分建议学习联合体(`union`)和如何将结构体作为函数参数传递,如使用引用或指针方式。