15−4.構造体と関数

第11章 関数」では、「11-2. 関数間のデータ授受の方法」と「11-3. 関数の戻り値を返す方法」で 関数どうしのデータのやり取りについて説明しましたが、構造体も関数の引数や戻り値に指定して関数間で受け渡すことができます。

(1)関数に構造体を渡す

構造体も通常の変数のように「値渡し」と「アドレス渡し」の2つの方法で引数に指定することができます。

【1.値渡し】

引数の独立性が保たれ安全なプログラムになりますが、対象となる構造体の内容をすべてコピーするため、大きな構造体では無駄な時間が多くなります。

(実行結果)
1001 中田太郎 76.500000

【2.アドレス渡し】

構造体をコピーすることなく、構造体のアドレスを引数で渡すため、サイズの大きな構造体を渡すときには値渡しより効率的です。

(実行結果)
1001 中田太郎 76.500000
1002 橋本裕太 65.200000
1003 綿引治 82.800000
演習

(2)関数から構造体を受け取る

通常の処理と同じように return文を使用して関数から構造体を返却します。

このとき、リターン型は構造体となるので注意してください。

(実行結果)
1001 中田太郎 76.500000
 上記以外に、通常の変数のときと同じように、関数を呼び出すときに構造体をアドレス渡しして、
その渡されたアドレスのデータを直接更新することもできます。
これは、上記 (1)2. アドレス渡しで渡された構造体のアドレスを使って、
直接構造体の中身を書きかえるやり方です。
演習
◆◆前ページ  ▲TOP▲  次ページ◆◆

banner
「初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved