Previous: 標準関数 --- gets()
Up: 構造体 I
Previous Page: 標準関数 --- gets()
Next Page: 構造体 II
struct [タグ名]{
型 メンバー名 m1;
型 メンバー名 m2;
...
型 メンバー名 mn;
} [変数名,[...]];
タグ名は省略可能であるが、省略すると後で再利用することは不可能であるので省略 しないほうが良い。} までで、構造体の詳細をコンパイラーに伝える部分は終わるが、 ここまでだけでは、実際の構造体変数は確保されない点に注意する必要がある。 } の後ろに変数名を書いて、初めて、構造体変数が確保される。
確保された構造体変数のメンバー(要素)へのアクセスは、タグ名.メンバー名 で出来る。
例1 struct pen{ char color; int hutosa; } pen1; ... pen1.color = 'b'; pen1.hutosa= 2;
構造体そのものに許される演算は、一括代入のみである。 また、構造体の中に配列が含まれる場合でも、同じ構造体同士では一括代入が 許される。
また、先に挙げた構造体メンバーへのアクセスも演算と見なす(選択演算子と 呼ばれる)ことも出来る。
構造体では常に初期化が許される。この点で、配列とは違う点に注意しなければ ならない。
例2 struct pen pen1 = {'b', 2};
初期化のときの、各メンバーへの代入は、メンバーの宣言時の並び順に初期化される ので、メンバーの型に応じた値で初期化することを忘れてはならない。