结构体中也有数组,称为结构体数组。它与前面讲的数值型数组几乎是一模一样的,只不过需要注意的是,结构体数组的每一个元素都是一个结构体类型的变量,都包含结构体中所有的成员项。
实例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SCORE_LEN 5
#define SCHOOL_LEN 50
#define STUDENTS_LEN 5
typedef struct {
char* name;
int age;
int score[SCORE_LEN];
char school[SCHOOL_LEN];
} Students;
void printStudentsInfo(Students s) {
printf("姓名:%s\n",s.name);
printf("年龄:%d\n",s.age);
printf("------考试分数------\n");
for(int i=0; i<SCORE_LEN; i++) {
printf("%d ",s.score[i]);
}
printf("\n学校:%s\n",s.school);
}
int main() {
Students stus[STUDENTS_LEN]= {
{"张三",18,{65,77,80,92,73},"西安电子科技大学"},
{"李四",17,{60,77,82,96,73},"西安交通大学"},
{"王五",19,{65,87,80,72,71},"西北工业大学"},
{"赵六",20,{75,77,97,92,63},"西北大学"},
{"孙琦",21,{68,79,88,90,53},"西安邮电大学"},
};
Students* pt = stus;
for(int i=0;i<STUDENTS_LEN;i++){
printStudentsInfo(stus[i]);
}
printf("\n--------------------------\n");
for(int i=0;i<STUDENTS_LEN;i++){
printStudentsInfo(*pt);
pt++;
}
return 0;
}
运行结果:
