上のように宣言します。宣言の時は、構造体変数を 書かなくてもよいです。タグも省略できます。 (あとから変数のみを宣言できます。) これじゃよくわからん! という方のために、もう少し詳しく解説します。struct 構造体タグ { int x; //構造体メンバー int y; char z;・・・・・ }構造体変数1,構造体変数2・・・;
これは、社員(shain)構造体をフルに宣言した物です。社員a,b,cについて、 年齢、名前、性別を格納することができます。たとえば、社員aの年齢は、 a.ageで表すことができます。このばあい、shainを 構造体テンプレート(template)と呼ぶことがあります。 要するに、鋳型です。鋳型を元に あとからいくらでも同じ形の物を製造できるからです。struct shain { int age; char name[32]; char sex; }a, b, c;
と、いう風にあとから、社員dの構造体変数を追加宣言することもできます。 また、構造体テンプレートを省略して宣言してもかまいません。ただしこの場合 あとから、構造体変数を追加宣言できなくなります。また、構造体変数を省略して あとから宣言することもできます。struct shain d;
宣言する場所に気をつけてください。関数内で宣言すればその中で しか参照することができません。たとえば、テンプレートを グローバルの位置に、構造体変数を関数内で宣言すると、この構造体 変数は、その関数内でしか参照できません。別な関数で同じ名前の 構造体変数を宣言しても、それらは別の変数となります。これは、 一般の変数と同じです。(この意味の分からない方は、次の例を よく見てください。)//関数外に宣言 struct shain{ int age; char name[32]; char sex; }; main() { ...... sturct shain a, b, c, d;//int x, y, z;というような感じで宣言 ..... }
このプログラムを実行すると次のようになります。
どうしてこのようになるか、はっきりわからない方は
もう少し後の章で「変数のスコープ」というのを
予定しているのでそのとき理解してください。
(ここのHPは、何でも後回しにしてしまいます)
Update Nov/05/1996 By Y.Kumei