C++ 结构体与函数
提示
- 向函数传递结构体:在C++中,结构体变量可以像普通参数一样传递给函数。例如,在
displayData(p);
中,结构体变量p
被传递给displayData
函数。 - 在函数中处理结构体数据:函数可以接受结构体作为参数,处理并显示结构体成员的数据,如
displayData(Person p)
函数所示。 - 从函数返回结构体:结构体也可以从函数返回。例如,在
Person getData(Person p)
函数中,结构体p
被修改并返回给调用者。
结构体 变量可以作为参数传递给函数,并且可以像正常参数一样返回。
在 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, temp;
temp = getData(p);
p = temp;
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;
}
这个程序的输出与上面的程序相同。
在这个程序中,我们在 main()
函数下创建了两个 Person
类型的结构体变量 p
和 temp
。
结构体变量 p 被传递给 getData()
函数,该函数从用户那里获取输入,然后将其存储在 temp 变量中。
temp = getData(p);
我们然后将 temp 的值赋给 p。
p = temp;
然后,将结构体变量 p 传递给 displayData()
函数,该函数显示信息。
注意: 我们不真正需要在大多数编译器和 C++ 版本中使用 temp 变量。相反,我们可以简单地使用以下代码:
p = getData(p);