c++ 传参结构体数组
时间: 2024-09-18 09:10:18 浏览: 42
在C++中,你可以使用结构体(struct)数组作为参数传递给函数。结构体是由不同类型的数据成员组成的用户自定义类型,当你有一个数据集合,每个元素都具有相同的结构时,可以定义一个结构体数组。
例如,假设我们有以下简单的结构体`Person`:
```cpp
struct Person {
std::string name;
int age;
};
```
然后我们可以创建一个结构体数组,存储多个`Person`对象:
```cpp
Person people[5] = {
{"Alice", 25},
{"Bob", 30},
{"Charlie", 35},
{"Dave", 40},
{"Eve", 45}
};
```
要将这个数组作为参数传递给函数,你需要在函数声明中指定接收的是`Person*`类型的指针,因为数组本质上是连续内存区域,用指针表示更合适:
```cpp
void printPeople(Person* arr, int size) {
for (int i = 0; i < size; i++) {
std::cout << "Name: " << arr[i].name << ", Age: " << arr[i].age << std::endl;
}
}
// 调用函数
printPeople(people, sizeof(people) / sizeof(people[0]));
```
在这个例子中,`size`参数告诉函数数组的大小,这样函数就知道什么时候停止遍历。你可以选择不提供数组大小,而是让函数自己计算数组长度,但这通常会在数组作为动态分配或内部容器时变得复杂。
阅读全文