# 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()`函数，该函数显示信息。