c++结构体指针作为结构体参数
时间: 2023-10-10 15:13:12 浏览: 116
当使用C++中的结构体指针作为结构体参数时,可以通过传递指针来直接操作和修改结构体的内容,而不是传递结构体的副本。这样可以节省内存空间并提高程序的效率。
下面是一个示例,演示了如何使用结构体指针作为结构体参数:
```cpp
#include <iostream>
struct Person {
std::string name;
int age;
};
void updatePersonInfo(Person* person) {
person->name = "Alice"; // 修改结构体成员
person->age = 25;
}
int main() {
Person p;
p.name = "Bob";
p.age = 30;
std::cout << "Before update: " << p.name << ", " << p.age << std::endl;
updatePersonInfo(&p); // 传递结构体指针
std::cout << "After update: " << p.name << ", " << p.age << std::endl;
return 0;
}
```
在上面的示例中,我们定义了一个名为Person的结构体,包含了姓名和年龄两个成员变量。然后我们定义了一个updatePersonInfo函数,该函数接受一个Person类型的指针作为参数,并通过指针来修改结构体的成员变量。
在主函数中,我们创建了一个Person类型的变量p,并初始化了其成员变量。然后我们调用updatePersonInfo函数,将p的地址作为参数传递给它。在函数内部,我们通过指针修改了p的成员变量。
最后,我们输出修改后的结果,可以看到结构体的成员变量已经被成功更新。
通过使用结构体指针作为参数,我们可以直接修改结构体的内容,而不需要创建副本或者返回新的结构体对象。这种方式在处理大型结构体或需要频繁修改结构体内容的情况下非常有用。
阅读全文