C算法--结构体(struct)的使用

1 struct studentInfo{
2     int id;
3     char gender;
4     //默认生成的构造函数
5     studentInfo(){
6     }
7 };

若想要手动提供id和gender初始化参数

 1 struct studentInfo{
 2     int id;
 3     char gender;
 4     
 5     studentInfo(int _id,char _gender){
 6         //赋值
 7         id=_id;
 8         gender=_gender; 
 9     }
10 };

或者:

1 struct studentInfo{
2     int id;
3     char gender;
4     
5     studentInfo(int _id,char _gender):id(_id),gender(_gender){
6     }
7         //赋值
8 };

这样可以直接在需要时对结构体变量赋值:

1 studentInfostu=studentInfo(10086,'M');

只要参数个数和类型不完全相同可以定义多个构造函数

 1 struct studentInfo{
 2     int id;
 3     char gender;
 4     //用以不初始化就定义结构体变量
 5     studentInfo() {
 6     }
 7     //只初始化 gender
 8     studentInfo(char _gender){
 9     }
10     //同时初始化id和gender
11      studentInfo(int _id,char _gender){
12          id=_id;
13          gender=_gender;
14      }
15     
16 };

应用实例:结构体Point 用于存放平面点的坐标x,y

 1 #include <stdio.h> 
 2 
 3 struct Point{
 4     int x,y;
 5     //用以不经初始化地定义pt[10] 
 6     Point(){}
 7     //用以提供x和y的初始化
 8     Point(int _x,int _y):x(_x),y(_y){}
 9 }pt[10];
10     
11     
12                 
13 int main(){
14     int num=0;
15     int i,j;
16     for(i=1;i<=3;i++){
17          for(j=1;j<=3;j+=)
18          {
19              pt[num++]=Point(i,j) ;//直接使用构造函数 
20         }
21     }
22     for(int i=0;i<num;i++) {
23         printf("%d,%d
",pt[i].x,pt[i].y);
24     }
25          return 0;
26 }
27     
结构体Point用于存放平面点的坐标x,y
原文地址:https://www.cnblogs.com/Catherinezhilin/p/11138040.html