引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)とは?
引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)とは、呼出し側の実引数を、サブルーチンの仮引数へどう対応づけるかの方式。値呼出しは実引数の値をコピーして渡すので、内部で仮引数を書き換えても呼出し側の変数は変わらない。参照呼出しは変数の位置(アドレス)を渡すため、内部の書換えがそのまま呼出し側に及ぶ。結果呼出しは内部では作業用の複製を使い、終了時に値を呼出し側へ書き戻す。名前呼出しは実引数の式そのものを渡し、使うたびに評価するので、式に含まれる変数の値が変わりうる。
応用情報技術者試験の過去問では1回出題されています。
ひきすうのうけわたし
引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)の意味
呼出し側の実引数を、サブルーチンの仮引数へどう対応づけるかの方式。値呼出しは実引数の値をコピーして渡すので、内部で仮引数を書き換えても呼出し側の変数は変わらない。参照呼出しは変数の位置(アドレス)を渡すため、内部の書換えがそのまま呼出し側に及ぶ。結果呼出しは内部では作業用の複製を使い、終了時に値を呼出し側へ書き戻す。名前呼出しは実引数の式そのものを渡し、使うたびに評価するので、式に含まれる変数の値が変わりうる。
引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)の具体例
配列の合計を求めるだけの関数には値呼出しで十分だが、配列全体をコピーすると時間と記憶容量を食うため、実務では「参照で渡してconstを付ける」形が使われる。組込みの割込みハンドラのように呼出し側の変数を書き換えたい場合は、参照呼出しかポインタ渡しを選ぶ。
引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)は試験でどう引っ掛けられる?
「渡した変数の値が実行後に変更されないことが保証される」のは値呼出しだけである。結果呼出しは終了時に書き戻すので変わり、参照呼出しは実行中から変わり、名前呼出しも評価のたびに副作用が及びうる。「参照渡しは速いから安全」といった速度と安全性の混同も定番。
引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)と関連する用語
引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)が出た過去問
メインプログラムを実行した後,メインプログラムの変数X,Yの値は幾つになるか。ここで,仮引数Xは値呼出し(call by value),仮引数Yは参照呼出し(c…
正解:X=2, Y=6
要点:値呼出しは呼出し側に反映されず参照呼出しは反映される
値呼出しの仮引数への代入は呼出し側に反映されないため、主プログラムのXは2のまま。参照呼出しのYは手続内の代入がそのまま反映される。手続内ではX=2+2=4、続いてY=4+2=6となるので、Yは6になる。
出典:平成28年度 春期 応用情報技術者試験 午前 問20(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。