📅  最后修改于: 2020-09-25 05:11:11             🧑  作者: Mango
可以将结构变量传递给函数并以与普通参数类似的方式返回。
可以使用与普通参数类似的方式将结构变量传递给函数 。考虑以下示例:
#include
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;
}
输出
Enter Full name: Bill Jobs
Enter age: 55
Enter salary: 34233.4
Displaying Information.
Name: Bill Jobs
Age: 55
Salary: 34233.4
在此程序中,要求用户在main()
函数中输入Person的name
, age
和salary
。
然后,使用将结构变量p
传递给函数 。
displayData(p);
displayData()
的返回类型为void
并且传递了类型为Person
的单个参数。
然后从该函数显示结构p
的成员。
#include
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;
}
该程序的输出与上面的程序相同。
在此程序中,类型结构P erson
的结构变量p
在main()
函数下定义。
结构变量p
传递给getData()
函数 ,该函数从用户那里获取输入,然后返回给main 函数。
p = getData(p);
注意:如果两个结构变量的类型相同,则可以使用赋值运算符 =将结构变量的所有成员的值分配给另一个结构。您无需手动分配每个成员。
然后将结构变量p
传递给displayData()
函数 ,该函数显示信息。