Previous: 構造体 I
Up: 構造体 I
Next: 演算
Previous Page: 構造体 I
Next Page: 演算

構造体の宣言

構造体の宣言は以下のように行う。

struct  [構造体タグ] {
                型 メンバー1;
                型 メンバー2;
                ...
                型 メンバーn;
        }[変数名,...];

構造体であることは、最初に struct を書くことによって示す。 struct の後ろの「構造体タグ」と呼ばれる、新しい構造体の名前は省略 可能であるが、名前が無いと後で利用することは出来ない。従って、なるべく 省略しない方が良い。次に、{ と } でくくられる中に、その構造体に含まれる データの種類とその種類を特定するための「メンバー名」という名前を書く。 } で構造体の宣言は終わりで、その後に、変数名を書けば、その構造体変数が 確保される。

例1
        struct  pen{
            char color;
            int  hutosa;
        } pen1;

例1では、構造体 pen が宣言されている。構造体 pen は、文字型変数と整数型変数 をメンバーに持ち、メンバーを区別するために、それぞれ color, hutosa と いうメンバー名をつけている。最後に、構造体 pen の変数として、 pen1 という 名前の変数を1個確保している。 この変数の確保は、整数の時と同じようにみなせる。

int  a;

int のところが、 struct pen {...} に置き換えたものだと思えば 良い。

例2
        struct  point{
            float x;
            float y;
        } p1, p2;

この例では、構造体 point が宣言されている。構造体 point は、実数変数を2つ メンバーに持ち、それぞれのメンバー名は、 x, y である。そして、構造体 point の変数として、 p1, p2 という2つの変数が確保されている。

例3
        struct  point{
            float x;
            float y;
        };

例3は、例2とほぼ同じだが、変数の確保がされていない。従って、構造体 point が宣言されただけで、実際には、構造体 point 型の変数は存在しない。 つまり、新しい型が定義されたのとほぼ同じである。

例4
        struct  point{
            float x;
            float y;
        };
main(){
        struct point p1, p2;

例4では、まず例3と同じく構造体 point の宣言を行い、変数は確保せず、 main() の中で、先に宣言した構造体 point を使って、変数を確保している。 このように、構造体の宣言と確保を分けて書くことも可能である。

maruyama@wakhok.ac.jp
1995年02月08日 (水) 18時57分57秒 JST