構造体の初期化、代入、アロー演算子、構造体配列の理解度を確認しましょう。
struct Point { int x; int y; }; struct Point p = {3, 7}; printf("(%d, %d)\n", p.x, p.y);
struct Point a = {1, 2}; struct Point b; b = a; b.x = 10; printf("a.x=%d, b.x=%d\n", a.x, b.x);
struct Point p = {5, 8}; struct Point *ptr = &p; printf("%d\n", ptr->y);
ptr->y は (*ptr).y と同じ。ポインタ経由でメンバにアクセスする際はアロー演算子を使います。p.y = 8。struct Student { char name[20]; int score; }; struct Student s[3] = { {"Taro", 80}, {"Hanako", 95}, {"Jiro", 70} }; int max = 0; for (int i = 0; i < 3; i++) { if (s[i].score > s[max].score) max = i; } printf("%s\n", s[max].name);