この章では構造体について説明します。
「構造体」はバラバラの異なる型のデータを持つ変数同士を1つの型として扱うことが出来ます。
それに対して配列は単一のデータ型しかまとめて扱う事はできません。
例えば、学生の成績はint型、身長はdouble型、名前はchar型で扱いたい時に様々なデータ型なので配列では扱うことが出来ません。
このような時に構造体を使います。
では例をみてみましょう。
構造体型の名前は自由に付けてください。
そしてstructのブロックの中にメンバの宣言をして、終わりに「;」を付けます。
メンバとは変数の別名だと思ってください。
このメンバに後からデータを入れていきます。
この例では以下の部分が構造体の宣言です。
構造体型を宣言すると構造体型に属する変数を作ることが出来るようになります。
構造体型の変数も普通の変数と同じように宣言をしなくてはいけません。
宣言をしましたら、値を入れるのですが、通常の変数と同じで宣言と同時に初期化することが出来ます。
以下の基本構文が構造体型変数の初期化です。
例では以下のように書いています。
この時、気を付けなくてはいけないのは
例えば、
これで1が出力されます。
構造体の配列はfor文で出力しています。
メンバの値を出力するには
次の例では構造体型のポインタを使用する方法について説明します。
この構造体型の配列の要素にアクセスするには
つまり、iの値がループするごとに進むので、ポインタが示す位置も変わります。
次の例では構造体の配列について説明します。
初めに構造体の配列名と要素数を決めましたら、以下のようにブロックの末尾に配列名と要素数を配置します。
scanfの引数にあるメンバはカンマで区切れば複数書く事が出来ます。
変換指定子もメンバの数だけ書いてください。