企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# C++ 结构与函数 > 原文: [https://www.programiz.com/cpp-programming/structure-function](https://www.programiz.com/cpp-programming/structure-function) #### 在本文中,您将找到相关示例,以将结构作为参数传递给函数,并在程序中使用它们。 [结构](/cpp-programming/structure "C++ structures")变量可以传递给[函数](/cpp-programming/function "C++ function"),并以与普通自变量类似的方式返回。 ## 将结构传递给 C++ 中的函数 可以使用与普通参数类似的方式将结构变量传递给函数。 考虑以下示例: * * * ### 示例 1:C++ 结构和函数 ```cpp #include <iostream> using namespace std; struct Person { char name[50]; int age; float salary; }; void displayData(Person); // Function declaration int main() { Person p; cout << "Enter Full name: "; cin.get(p.name, 50); cout << "Enter age: "; cin >> p.age; cout << "Enter salary: "; cin >> p.salary; // Function call with structure variable as an argument displayData(p); return 0; } void displayData(Person p) { cout << "\nDisplaying Information." << endl; cout << "Name: " << p.name << endl; cout <<"Age: " << p.age << endl; cout << "Salary: " << p.salary; } ``` **输出** ```cpp Enter Full name: Bill Jobs Enter age: 55 Enter salary: 34233.4 Displaying Information. Name: Bill Jobs Age: 55 Salary: 34233.4 ``` 在该程序中,要求用户在`main()`函数内输入人员的`name`,`age`和`salary`。 然后,将结构变量`p`传递给使用。 ```cpp displayData(p); ``` `displayData()`的返回类型是`void`,并且传递了类型结构`Person`的单个参数。 然后从该函数显示结构`p`的成员。 * * * ### 示例 2:从 C++ 中的函数返回结构 ```cpp #include <iostream> using namespace std; struct Person { char name[50]; int age; float salary; }; Person getData(Person); void displayData(Person); int main() { Person p; p = getData(p); displayData(p); return 0; } Person getData(Person p) { cout << "Enter Full name: "; cin.get(p.name, 50); cout << "Enter age: "; cin >> p.age; cout << "Enter salary: "; cin >> p.salary; return p; } void displayData(Person p) { cout << "\nDisplaying Information." << endl; cout << "Name: " << p.name << endl; cout <<"Age: " << p.age << endl; cout << "Salary: " << p.salary; } ``` 该程序的输出与上面的程序相同。 在该程序中,在`main()`函数下定义了类型为`Person`的结构变量`p`。 结构变量`p`传递给`getData()`函数,该函数从用户那里获取输入,然后返回到主函数。 ```cpp p = getData(p); ``` **注意**:如果两个结构变量的类型相同,则可以使用赋值运算符`=`将结构变量的所有成员的值分配给另一个结构。 您无需手动分配每个成员。 然后将结构变量`p`传递给`displayData()`函数,该函数显示信息。