一、什麼是結構體數組
結構體是C語言和C++語言中的一種構造類型,結構體可以將多個不同的數據類型組合在一起成為一個新的數據類型。而結構體數組,則是將多個相同的結構體按照一定順序存儲在一起形成一個數組。
struct student{ char name[20]; int age; float score; }; int main(){ student s[5]; return 0; }
以上代碼定義了一個名為student的結構體,包含了學生的姓名、年齡和分數三個屬性。同時,該代碼定義了一個包含5個元素的結構體數組s。
二、如何定義和初始化結構體數組
定義結構體數組和定義基本類型數組一樣,需要指定數組類型、數組名和數組大小。在C++語言中,我們可以使用結構體的構造函數對結構體數組進行初始化。
struct student{ char name[20]; int age; float score; student(char* n, int a, float s):age(a),score(s) { strcpy(name,n); } }; int main(){ student s[3] = { student("Jack",20,95.5), student("Lucy",19,86.0), student("Tom",21,78.5) }; return 0; }
以上代碼定義了一個帶有構造函數的student結構體,並對一個包含3個元素的結構體數組s進行了初始化。需要注意的是,在結構體數組的初始化過程中,需要為每個元素都提供相應的初始化值。
三、如何通過索引訪問結構體數組元素
結構體數組的元素訪問方式和一般數組的訪問方式相同,使用結構體數組名和元素索引即可訪問。
struct student{ char name[20]; int age; float score; }; int main(){ student s[3] = { {"Jack",20,95.5}, {"Lucy",19,86.0}, {"Tom",21,78.5} }; cout<<s[0].name<<" "<<s[0].age<<" "<<s[0].score<<endl; return 0; }
以上代碼演示了通過索引訪問結構體數組元素的方法。在C++語言中,使用”.”來訪問結構體成員。
四、如何遍歷結構體數組
遍歷結構體數組的方法和遍歷一般數組的方法相同,使用循環結構即可。
struct student{ char name[20]; int age; float score; }; int main(){ student s[3] = { {"Jack",20,95.5}, {"Lucy",19,86.0}, {"Tom",21,78.5} }; for(int i=0;i<3;i++){ cout<<s[i].name<<" "<<s[i].age<<" "<<s[i].score<<endl; } return 0; }
以上代碼演示了結構體數組的遍歷方法。
五、結構體數組作為函數參數的傳遞
結構體數組作為函數參數的傳遞方式和一般數組的傳遞方式相同,可以使用指針和數組名稱兩種方式進行傳遞。
struct student{ char name[20]; int age; float score; }; void print(student* stu, int n){ for(int i=0;i<n;i++){ cout<<stu[i].name<<" "<<stu[i].age<<" "<<stu[i].score<<endl; } } int main(){ student s[3] = { {"Jack",20,95.5}, {"Lucy",19,86.0}, {"Tom",21,78.5} }; print(s,3); return 0; }
以上代碼演示了結構體數組作為函數參數傳遞的方法。
六、結構體數組的排序
結構體數組的排序需要定義一個比較函數,對結構體數組中的元素按照指定規則進行排序。
struct student{ char name[20]; int age; float score; }; bool cmp(const student& a, const student& b){ return a.score > b.score; } int main(){ student s[3] = { {"Jack",20,95.5}, {"Lucy",19,86.0}, {"Tom",21,78.5} }; sort(s,s+3,cmp); for(int i=0;i<3;i++){ cout<<s[i].name<<" "<<s[i].age<<" "<<s[i].score<<endl; } return 0; }
以上代碼演示了結構體數組按照分數從高到低進行排序的方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242794.html