C++结构体数组
时间: 2025-03-21 10:02:44 浏览: 37
### C++ 中定义和使用结构体数组
#### 定义结构体
在 C++ 中,`struct` 是一种自定义的数据类型,允许将不同类型的数据组合在一起。以下是定义 `Worker` 结构体的示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 1. 创建结构体
struct Worker {
int id; // 员工编号
string name; // 员工姓名
double salary; // 工资
};
```
上述代码定义了一个名为 `Worker` 的结构体,其中包含了三个成员变量:员工编号 (`id`)、姓名 (`name`) 和工资 (`salary`)。
---
#### 定义结构体数组
一旦定义了结构体,就可以像其他基本数据类型一样创建其数组。以下是一个包含多个 `Worker` 对象的结构体数组的例子[^3]:
```cpp
int main() {
// 2. 定义结构体数组
const int size = 3;
Worker workers[size];
// 3. 初始化结构体数组中的元素
workers[0].id = 101;
workers[0].name = "Alice";
workers[0].salary = 5000.0;
workers[1].id = 102;
workers[1].name = "Bob";
workers[1].salary = 6000.0;
workers[2].id = 103;
workers[2].name = "Charlie";
workers[2].salary = 7000.0;
// 4. 遍历并输出结构体数组的内容
for (int i = 0; i < size; ++i) {
cout << "ID: " << workers[i].id
<< ", Name: " << workers[i].name
<< ", Salary: $" << workers[i].salary << endl;
}
return 0;
}
```
在这个例子中,首先声明了一个大小为 3 的 `workers` 数组,并逐个初始化每个元素的成员变量。最后通过循环遍历整个数组并将每条记录打印到控制台。
---
#### 使用指针访问结构体数组
除了直接通过索引访问外,还可以借助指针来操作结构体数组。下面展示了如何使用指针对结构体数组进行读取和修改[^2]:
```cpp
int main() {
// 定义结构体数组
Worker workers[] = {{101, "Alice", 5000}, {102, "Bob", 6000}, {103, "Charlie", 7000}};
int size = sizeof(workers) / sizeof(Worker);
// 获取第一个元素地址作为起始指针
Worker* ptr = workers;
// 输出结构体数组内容
for (int i = 0; i < size; ++i) {
cout << "Pointer Access - ID: " << ptr->id
<< ", Name: " << ptr->name
<< ", Salary: $" << ptr->salary << endl;
// 移动指针至下一个元素
ptr++;
}
return 0;
}
```
这里先计算出数组长度,再用指针逐一访问每一个结构体实例。注意当使用指针时需改用箭头运算符(`->`)代替`.` 来获取成员值。
---
#### 总结
以上介绍了如何在 C++ 中定义以及操作结构体数组的方法。无论是简单的赋值还是复杂的逻辑处理都可以基于此基础展开实现。合理运用可以使程序更加清晰易懂且高效实用。
阅读全文
相关推荐


















