C++结构体与数组实战指南
好的,我们来详细讲解 C++ 中 struct 的定义以及结构体数组的使用。
1. 结构体 (struct) 的定义
结构体 (struct) 是 C++ 中一种用户自定义的数据类型。它允许你将多个不同类型的数据项组合成一个单一的逻辑单元,这些数据项称为成员变量或字段。
基本语法
struct 结构体名称 {
数据类型1 成员变量1;
数据类型2 成员变量2;
// ... 可以有更多成员变量
数据类型N 成员变量N;
}; // 注意:这里有一个分号!
示例:定义一个学生结构体
#include
#include
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
#include
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++ 中组织和管理相关数据的基础工具,在开发中应用非常广泛,例如存储学生信息、员工记录、游戏中的角色属性等。









