在本文中,您將找到相關(guān)示例,將結(jié)構(gòu)體作為參數(shù)傳遞給函數(shù),并在程序中使用它們。
可以將結(jié)構(gòu)體變量傳遞給函數(shù)并以與普通自變量類似的方式返回。
可以像普通參數(shù)一樣將結(jié)構(gòu)體變量傳遞給函數(shù)??紤]以下示例:
#include <iostream>
using namespace std;
struct Person
{
char name[50];
int age;
float salary;
};
void displayData(Person); // 聲明函數(shù)
int main()
{
Person p;
cout << "輸入姓名: ";
cin.get(p.name, 50);
cout << "輸入年齡: ";
cin >> p.age;
cout << "輸入工資: ";
cin >> p.salary;
// 函數(shù)調(diào)用,結(jié)構(gòu)變量作為參數(shù)
displayData(p);
return 0;
}
void displayData(Person p)
{
cout << "\n顯示信息" << endl;
cout << "姓名: " << p.name << endl;
cout <<"年齡: " << p.age << endl;
cout << "工資: " << p.salary;
}輸出結(jié)果
輸入姓名: Bill Jobs 輸入年齡: 55 輸入工資: 34233.4 顯示信息 姓名: Bill Jobs 年齡: 55 工資: 34233.4
在這個程序中,要求用戶在main()函數(shù)中輸入一個人的姓名、年齡和工資。
然后,使用將結(jié)構(gòu)變量p傳遞給函數(shù)。
displayData(p);
displayData()的返回類型為void,并傳遞一個類型為結(jié)構(gòu)Person的參數(shù)。
然后從這個函數(shù)中顯示結(jié)構(gòu)p的成員。
#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;
}該程序的輸出結(jié)果與上面的程序相同。
在此程序中,類型為Person的結(jié)構(gòu)變量p在main()函數(shù)中定義。
結(jié)構(gòu)變量p被傳遞給getData()函數(shù),函數(shù)從用戶那里獲取輸入,然后返回給(main)主函數(shù)。
p = getData(p);
注意:如果兩個結(jié)構(gòu)變量的類型相同,則可以使用賦值運算符(=)將結(jié)構(gòu)變量的所有成員的值分配給另一個結(jié)構(gòu)。您無需手動分配每個成員。
然后將結(jié)構(gòu)變量p傳遞給displayData()函數(shù),該函數(shù)顯示信息。