「第11章 関数」では、「11-2. 関数間のデータ授受の方法」と「11-3. 関数の戻り値を返す方法」で 関数どうしのデータのやり取りについて説明しましたが、構造体も関数の引数や戻り値に指定して関数間で受け渡すことができます。
構造体も通常の変数のように「値渡し」と「アドレス渡し」の2つの方法で引数に指定することができます。
引数の独立性が保たれ安全なプログラムになりますが、対象となる構造体の内容をすべてコピーするため、大きな構造体では無駄な時間が多くなります。
1001 中田太郎 76.500000
構造体をコピーすることなく、構造体のアドレスを引数で渡すため、サイズの大きな構造体を渡すときには値渡しより効率的です。
1001 中田太郎 76.500000 1002 橋本裕太 65.200000 1003 綿引治 82.800000
通常の処理と同じように return文を使用して関数から構造体を返却します。
このとき、リターン型は構造体となるので注意してください。
1001 中田太郎 76.500000
※ 上記以外に、通常の変数のときと同じように、関数を呼び出すときに構造体をアドレス渡しして、 その渡されたアドレスのデータを直接更新することもできます。 これは、上記 (1)2. アドレス渡しで渡された構造体のアドレスを使って、 直接構造体の中身を書きかえるやり方です。
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved