编辑这个页面须要登录或更高权限!

C++ 结构体和函数

在本文中,您将找到相关示例,将结构体作为参数传递给函数,并在程序中使用它们。

可以将结构体变量传递给函数并以与普通自变量类似的方式返回。

将结构体传递给C ++中的函数

可以像普通参数一样将结构体变量传递给函数。考虑以下示例:

示例1:C ++结构体和函数

#include <iostream>
using namespace std;

struct Person
{
    char name[50];
    int age;
    float salary;
};

void displayData(Person);   // 声明函数

int main()
{
    Person p;

    cout << "输入姓名: ";
    cin.get(p.name, 50);
    cout << "输入年龄: ";
    cin >> p.age;
    cout << "输入工资: ";
    cin >> p.salary;

    // 函数调用,结构变量作为参数
    displayData(p);

    return 0;
}

void displayData(Person p)
{
    cout << "\n显示信息" << endl;
    cout << "姓名: " << p.name << endl;
    cout <<"年龄: " << p.age << endl;
    cout << "工资: " << p.salary;
}

输出结果

输入姓名: Bill Jobs
输入年龄: 55
输入工资: 34233.4

显示信息
姓名: Bill Jobs
年龄: 55
工资: 34233.4

在这个程序中,要求用户在main()函数中输入一个人的姓名、年龄和工资。

然后,使用将结构变量p传递给函数。

displayData(p);

displayData()的返回类型为void,并传递一个类型为结构Person的参数。

然后从这个函数中显示结构p的成员。

示例2:从C ++中的函数返回结构

#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 << "输入姓名: ";
    cin.get(p.name, 50);
    cout << "输入年龄: ";
    cin >> p.age;
    cout << "输入工资: ";
    cin >> p.salary;

    return p;
}

void displayData(Person p)
{
    cout << "\n显示信息" << endl;
    cout << "姓名: " << p.name << endl;
    cout <<"年龄: " << p.age << endl;
    cout << "工资: " << p.salary;
}

该程序的输出结果与上面的程序相同。

在此程序中,类型为Person的结构变量p在main()函数中定义。

结构变量p被传递给getData()函数,函数从用户那里获取输入,然后返回给(main)主函数。

p = getData(p);

注意:如果两个结构变量的类型相同,则可以使用赋值运算符(=)将结构变量的所有成员的值分配给另一个结构。您无需手动分配每个成员。

然后将结构变量p传递给displayData()函数,该函数显示信息。