# 進階C++
# struct
### 2021/12/17 電算社第十一堂社課
---
## struct
----
可自定義的資料結構
可以把很多彼此具關連性
但是不好一起處理的資料綁在一起
----
語法
```cpp=
struct 結構名稱{
資料型態1 欄位1;
資料型態2 欄位2;
...
};
```
----
ex.
```cpp=
#include <iostream>
using namespace std;
struct student{
int id; // 學號
string name; // 名字
char gender; // 性別
int age; // 年齡
};
int main(){
student foxyy; //宣告一個變數foxyy
foxyy.id = 910112;
foxyy.name = "foxyy";
foxyy.gender = 'M';
foxyy.age = 16;
cout << foxyy.id; // 910112
}
```
----
可以跟函式作連動
```cpp=
#include<iostream>
using namespace std;
struct student{
int English;
int Chinese;
int Math;
}Foxyy = {100, 60, 89}; //宣告一個變數Foxyy
int average(struct student a){
int ave = (a.English + a.Chinese + a.Math)/3;
return ave;
}
int main(){
int grade = average(Foxyy);
cout << grade;
return 0;
}
```
{"metaMigratedAt":"2023-06-16T16:27:00.051Z","metaMigratedFrom":"YAML","title":"進階STL:Struct","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"theme\":null}","contributors":"[{\"id\":\"4f731eff-9d88-41f4-af56-2e3e02f20cfc\",\"add\":488,\"del\":9},{\"id\":\"68c94489-3c2e-4879-b847-e982f360b03c\",\"add\":503,\"del\":46},{\"id\":\"9e7d687a-83f2-4e8a-8ee6-8846394e69a5\",\"add\":1,\"del\":0}]"}