関数引数(復習 2) 構造体型変数と関数引数 : 「副作用」がない 関数の実引数に、構造体型の変数も指定できる 単純型変数と同様、値が渡されるだけ 配列と関数引数 : 「副作用」が起きることがある 関数の実引数に、配列名を指定できる 注意 : 「配列型変数」というものはない 関数内で、「配列要素の値を変更」すると、呼出し元の「配列要素の値」も変化する 副作用 : 関数呼出しによって、呼出し元の変数の値が変化 危険 : プログラムを読む時に(値は変化したか?に)「気を付ける」必要がある 便利 : 代入以外で、呼出し元の変数を変更する手段になっている (cf. scanf) 効率 : コピーをしないので速い(これのために利用される事が多い[必要悪]) 「配列の引数渡し」の振舞 <<取り敢えず>> 配列名を渡すと、「配列が丸々渡されるようにみえる」と理解 関数内で、「要素の値が取り出せるだけでなく、変更も可能」(他は変更不可)