学习
错题
模考
我的
登录/注册/忘记密码
学习 / 结构体 / 多个结构体
多个结构体
并排定义;嵌套;结构体数组
1. 多种结构体,还可以嵌套
可以同时定义**多种**结构体。一种当日期,一种当学生,各管各的成员。 学生「里面」还可以再放一个日期,这叫**嵌套**: ```c struct Date { int y, m, d; }; struct Student { int id; struct Date birth; }; struct Student s; s.id = 1; s.birth.y = 2004; s.birth.m = 9; s.birth.d = 1; ``` `s.birth` 本身是一个 `Date`,再点一层才到年、月、日:`s.birth.y`。 不必嵌套也能一起用:一边有 `struct Date today;`,一边有 `struct Student s;`,一个函数里两种变量都出现,就是多个结构体的使用。 不要把成员写扁:没有 `s.y`,除非 `y` 直接写在 `Student` 里。
2. 结构体也可以排成数组
同一类型的许多个结构体,可以排成数组——一班学生就是这样: ```c struct Student a[3] = { {1, 90}, {2, 80}, {3, 70} }; int i, s = 0; for (i = 0; i < 3; i++) s += a[i].score; ``` 读法:`a[i]` 是第 i 个学生(一个结构体),`a[i].score` 才是他的分数。 - 下标仍从 0 到 n-1,和普通数组一样 - 写成 `a.score[i]` 就反了:`a` 是数组,不能对整排点 `score` - 嵌套时同理:`a[i].birth.m` 是第 i 个学生的出生月 结构体数组把「多个同类」和「每个里面好几项」合在一起。循环里先锁定哪一个(`a[i]`),再取哪个成员。
开始练习
动手写
返回结构体
动手写
4 道编程 · 综合运用本阶段知识点
编程题把本阶段知识点串起来用。只看要点不做,认识停在纸面上。
查看本阶段全部编程题
用嵌套结构体输出生日
未做
开始写
结构体数组原样输出
未做
开始写
结构体数组求总分
未做
开始写
结构体数组找最高分
未做
开始写
登录
注册
忘记密码
点击此处输入用户名
点击此处输入密码
登录
点击此处输入用户名
点击此处输入密码
点击此处输入邮箱
发送验证码
点击此处输入验证码
点击此处输入邮箱
发送验证码
点击此处输入验证码
点击此处输入新密码