现在用学生身上的各种信息来举例子。一个学生有自己姓名、学号、成绩等,然后每一个班级又会有好多的学生。这么多的数据很难整理的的清楚,那我们可以用某一个数据结构抽象成一个个的学生个体,这些个体都具有学生共有的性质(姓名、学号、成绩等),然后这些学生有各不相同,张三、李四……
我们有struct定义一个结构体,里面包含了学生所共有的性质(姓名、学号、成绩)然后每一个学生相应的结构体里面的内容又有所不同:
结构体代码如下:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct student{ //定义一个学生的结构体,叫做student
char name[10]; //学生姓名
char id[12]; //学生学号
int score; //学生成绩
};
typedef struct student STU; //给结构体student起一个别名,叫做STU
我们先解释一下 typedef 函数:这是一个起别名的函数就比如:
- int max = 9;
就可以写成:
- typedef int TT; //给 int起一个别名,叫做 TT
- TT max = 9; //那么 TT 就相当于 int,可以定义 max = 9;
下面是主函数:
int main(){
STU stu[3]; //定义3个学生stu[i]; i=0,1,2
strcpy(stu[0].name,"小明"); //输入学生姓名1
strcpy(stu[0].id,"202001010101"); //输入学生学号1
stu[0].score=89; //输入学生成绩1
strcpy(stu[1].name,"小亮"); //输入学生姓名2
strcpy(stu[1].id,"202001010102"); //输入学生学号2
stu[1].score=96; //输入学生成绩2
strcpy(stu[2].name,"小花"); //输入学生姓名3
strcpy(stu[2].id,"202001010103"); //输入学生学号3
stu[2].score=73; //输入学生成绩3
printf("姓名\t学号\t\t成绩\n"); //打印数据的标题
//打印学生信息:
printf("%s\t%s\t%d \n",stu[0].name,stu[0].id,stu[0].score);
printf("%s\t%s\t%d \n",stu[1].name,stu[1].id,stu[1].score);
printf("%s\t%s\t%d \n",stu[2].name,stu[2].id,stu[2].score);
return 0;
}
运行结果如下:
![](http://muxbai.cn/wp-content/uploads/2020/06/001.jpg)