Structures
Structures are named collections of data which are able to be of varying types.
Example 1: Structures in practice
struct student {
char *last_name;
int student_id;
char grade;
};
// By using `typedef` we can avoid prefixing the type with `struct`
typedef struct unit {
char *code;
char *name;
} unit;
void update_student(struct student *student);
void update_grade(unit *unit);
int main(void) {
struct student s1 = {
.last_name = "smith",
.student_id = 119493029,
.grade = 'B',
};
s1.grade = 'A';
update_student(&s1);
unit new_unit;
new_unit.name = "Microprocessors and Digital Systems";
update_unit(&new_unit);
}
void update_student(struct student *student) {
// `->` shorthand for dereference of struct
student->last_name = "doe";
student->grade = 'C';
}
void update_unit(unit *unit) {
// `->` shorthand for dereference of struct
unit->code = "CAB403";
unit->name = "Systems Programming";
}