構造体を使用する場合、
例えば、
この場合、Cでは次のように構造体の宣言をします。
struct jikan {
int ji;
int hun;
int byou;
};
さらに、実際に使われる関数の中で、
struct jikan a, b, c;
などと定義することにより、利用することができます。
ここで、構造体の変数名は、a, b, cとなります。
構造体の各項目を参照するには、 a.ji とか c.byou などとします。つまり、 「変数名.項目名」として参照します。 これを、一つの変数だと思って、 いろいろな処理(たしたり、引いたり、関数の引数としたり) をすることができます。また、構造体ごと、関数に渡すこともできます。
func(&a, &b);
一方、上記の場合、関数は以下のように定義します。
教科書に従えば、
void func(aa, bb, cc)
struct jikan *aa, *bb, *cc;
{
処理の記述
}
となります。推奨される書き方に従えば、
void func(struct jikan *aa, struct jikan *bb, struct jikan *cc)
{
処理の記述
}
となります。
関数の中での構造体の項目は、次のように行います。
aa->ji
文法的には、
(*aa).ji
と書いてもいいのですが、どちらも正しい文法になります。
ただし、->を使うことの方が一般的です。
ポインタとして渡されないときの記述法は、通常の場合と同じです。 この違いについては、後で吟味します。 ただし、ポインタとして渡す必要が無い場合でも、 慣例的にポインタとして渡すことの方が多いようです。
struct jikan a[10];
これは、ほぼ予想通りですね。
値の参照は、
a[5].ji
などとして行います。これも、予想通りですね。