好的,我们来详细讲解 C++ 中 struct 的定义以及结构体数组的使用。
1. 结构体 (struct) 的定义
结构体 (struct) 是 C++ 中一种用户自定义的数据类型。它允许你将多个不同类型的数据项组合成一个单一的逻辑单元,这些数据项称为成员变量或字段。
基本语法
struct 结构体名称 {
数据类型1 成员变量1;
数据类型2 成员变量2;
// … 可以有更多成员变量
数据类型N 成员变量N;
}; // 注意:这里有一个分号!
示例:定义一个学生结构体
#include <iostream>
#include <string>
using namespace std;
// 定义一个名为 Student 的结构体
struct Student {
string name; // 学生姓名
int id; // 学号
float gpa; // 平均绩点
}; // 结构体定义结束,必须加分号
int main() {
// 声明一个 Student 类型的变量
Student stu1;
// 给结构体成员赋值
stu1.name = "张三";
stu1.id = 20230101;
stu1.gpa = 3.75;
// 访问并输出结构体成员
cout << "姓名: " << stu1.name << endl;
cout << "学号: " << stu1.id << endl;
cout << "绩点: " << stu1.gpa << endl;
return 0;
}
说明:
- struct Student {…};: 定义了一个名为 Student 的结构体类型,它包含三个成员:name (字符串类型), id (整型), gpa (浮点型)。
- Student stu1;: 声明一个 Student 类型的变量 stu1。
- stu1.name = "张三";: 使用点运算符 . 来访问结构体变量的成员并为其赋值。
- 结构体变量的成员可以像普通变量一样使用。
2. 结构体数组
结构体数组就是数组的元素是结构体类型。它允许你存储和处理多个相同结构的数据集合。
定义结构体数组
结构体名称 数组名[数组大小];
示例:定义一个学生结构体数组
#include <iostream>
#include <string>
using namespace std;
struct Student {
string name;
int id;
float gpa;
};
int main() {
// 定义一个包含 3 个 Student 元素的数组
Student students[3];
// 初始化数组元素 (方式一:逐个赋值)
students[0].name = "张三";
students[0].id = 20230101;
students[0].gpa = 3.75;
students[1].name = "李四";
students[1].id = 20230102;
students[1].gpa = 3.82;
students[2].name = "王五";
students[2].id = 20230103;
students[2].gpa = 3.68;
// 初始化数组元素 (方式二:使用初始化列表)
// Student students[3] = {
// {"张三", 20230101, 3.75},
// {"李四", 20230102, 3.82},
// {"王五", 20230103, 3.68}
// };
// 遍历结构体数组并输出信息
for (int i = 0; i < 3; i++) {
cout << "学生 " << i + 1 << ":" << endl;
cout << " 姓名: " << students[i].name << endl;
cout << " 学号: " << students[i].id << endl;
cout << " 绩点: " << students[i].gpa << endl;
}
return 0;
}
说明:
- Student students[3];: 定义了一个名为 students 的数组,该数组包含 3 个元素,每个元素都是 Student 结构体类型。
- 访问成员:使用 数组名[索引].成员名 的语法来访问数组中特定元素的特定成员,例如 students[0].name 访问第一个学生的姓名。
- 初始化:
- 方式一:声明数组后,逐个元素、逐个成员地进行赋值。
- 方式二:在声明数组时,使用大括号 {} 进行初始化。内部嵌套的大括号 {} 用于初始化每个结构体元素(成员顺序需与结构体定义一致)。
- 遍历:使用循环(如 for 循环)遍历数组中的每个结构体元素,并通过点运算符访问其成员。
总结
- 结构体 (struct) 用于将不同类型的数据组合成一个新的数据类型。
- 结构体数组 是存储多个相同结构体数据的有效方式。
- 使用点运算符 . 访问结构体变量或其数组元素的成员。
- 结构体数组可以在声明时初始化,也可以在后续代码中逐个初始化成员。
结构体和结构体数组是 C++ 中组织和管理相关数据的基础工具,在开发中应用非常广泛,例如存储学生信息、员工记录、游戏中的角色属性等。
网硕互联帮助中心




评论前必须登录!
注册