next up previous contents
Next: 21.1.2 構造体同士の参照 Up: 21.1 構造体の中の構造体 Previous: 21.1 構造体の中の構造体

21.1.1 構造体からの構造体の参照

構造体のメンバーには、構造体を含める事もできる。その際に注意することは、 含まれる構造体は既に宣言されていなければならない点である。

例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 型であることに注意しなければ ならないのである。

\epsfile{file=21fig1}



Noriyo Kanayama