结构体数组定义时初始化
结构体数组的初始化与前面讲的数值型数组的初始化是一模一样的,数值型数组初始化的方法和需要注意的问题在结构体数组的初始化中同样适用,因为不管是数值型数组还是结构体数组都是数组。下面就将前面的一个程序修改一下。
- # include <stdio.h>
- # include <string.h>
- struct STU
- {
- char name[20];
- int age;
- char sex;
- char num[20];
- };
- void OutputSTU(struct STU stu[5]);
- int main(void)
- {
- struct STU stu[5] = {{"小红", 22, 'F', "Z1207031"}, {"小明", 21, 'M', "Z1207035"}, {"小七", 23, 'F', "Z1207022"}, {"小欣", 20, 'F', "Z1207015"}, {"小天", 19, 'M', "Z1207024"}};
- OutputSTU(stu);
- return 0;
- }
- void OutputSTU(struct STU stu[5])
- {
- struct STU stumax = stu[0];
- int j;
- for (j=1; j<5; ++j)
- {
- if (strcmp(stumax.num, stu[j].num) < 0)
- {
- stumax = stu[j];
- }
- }
- printf("学生姓名:%s 学生年龄:%d 学生性别:%c 学生学号:%s\n", stumax.name, stumax.age, stumax.sex, stumax.num);
- }
输出结果是:
学生姓名:小明 学生年龄:21 学生性别:M 学生学号:Z1207035
注意,字符要用单引号括起来,字符串要用双引号括起来。