用c++实现函数输入为结构体数组,输出是结构体数组
时间: 2024-10-13 21:01:19 浏览: 59
在C++中,你可以通过指针和引用来实现从结构体数组输入并输出结构体数组的功能。假设有一个名为`Person`的结构体,包含姓名`name`和年龄`age`两个成员,你可以这样做:
```cpp
#include <iostream>
#include <string>
// 定义结构体 Person
struct Person {
std::string name;
int age;
};
// 函数模板用于接收和返回Person类型的数组
template<typename T, size_t N>
void processStructArray(T(&input)[N], T(&output)[N]) {
for(int i = 0; i < N; ++i) {
// 输入阶段,获取并修改输入数组元素
output[i].name = input[i].name + " (modified)";
output[i].age += 1;
// 输出阶段,打印结果
std::cout << "Name: " << output[i].name << ", Age: " << output[i].age << "\n";
}
}
int main() {
// 创建结构体数组实例
Person people[3] = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 35}};
// 调用函数处理数组
Person result[3];
processStructArray(people, result);
return 0;
}
```
在这个例子中,`processStructArray`函数接受两个`Person`类型的数组引用作为参数,对每个元素进行修改(例如增加年龄)然后输出结果。注意,由于C++不允许直接将数组名作为函数参数传递,这里实际上是传递的数组首地址。
阅读全文