構造体のメンバーには、構造体を含める事もできる。その際に注意することは、 含まれる構造体は既に宣言されていなければならない点である。
例1 struct Point { float x; float y; }; struct Line { int no; struct Point a, b; }; struct Line line; |
この例では、最初の宣言で、実数 2 個をメンバーに持つ Point という構造体を 宣言し、次に、その構造体 point をメンバーに含む Line という構造体を 宣言し、最後に構造体 Line 型の構造体変数 line を確保している。 この場合、line のメンバー no は今までと同じようにして、次のように アクセスできる。
line.no = 1;しかし、メンバー a, b は、実際には構造体なので、そのままではアクセス出 来ない(一括代入は可能)。アクセスするには、メンバー a, b のメンバー x, y にアクセスする。これには、次のようにする。
line.a.x = 0; line.a.y = 0; line.b.x = 0; line.b.y = 0;
つまり、line.a, line.b は、 構造体 Point 型であることに注意しなければ ならないのである。