システムアーキテクト暗記無料で始める

引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)とは?ひきすうのうけわたし

引数の受渡し(値呼出し・参照呼出し・結果呼出し・名前呼出し)とは、サブルーチンの仮引数へ実引数をどう対応づけるかの規約。違いは呼出し側の変数がいつ変わるかに集約され、値呼出しは複製を渡すので変わらず、参照呼出しは記憶位置を渡すので実行中から変わり、結果呼出しは複製で作業して復帰時に書き戻し、名前呼出しは式そのものを渡して参照のたびに評価する。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の過去問では2回出題されています(2021年度〜2025年度)。

システムアーキテクト試験の頻出用語/午前II

別名:call by value、call by reference、パラメータ渡し、引数の受渡し、値呼出し・参照呼出し・結果呼出し・名前呼出し、値呼出し、参照呼出し、結果呼出し、名前呼出し

この語が出る過去問を解く →

背景

高級言語がサブルーチンを持った時点で、呼出し側と呼出し先が同じ実体を見るのか別物を見るのかを決める必要が生じた。複製は副作用を封じられるが大きなデータでは時間と記憶を食い、共有は速いが呼出し先の変更が外へ漏れる。この対立の調停として複数の方式が並存している。システムアーキテクトでは、性能と副作用の抑制のどちらを優先するかという設計判断そのものであり、既存資産の保守でも方式の違いが実害になる。

具体例

C言語は値呼出しだけを持ち、呼出し側を書き換えたいときはポインタの値を渡す。C++はconst参照、C#はrefやoutで方式を宣言側に明示させる。大きな構造体は値で渡すと複製の費用が大きいため、実務では参照で渡したうえで変更禁止の指定を付ける形が使われる。

試験での引っ掛け

渡した変数の値が実行後に変更されないことが保証されるのは値呼出しだけである。結果呼出しは復帰時に書き戻すので変わり、参照呼出しは実行中から変わり、名前呼出しも評価のたびに副作用が及びうる。参照渡しは速いから安全という、性能と安全性を取り違えた選択肢も定番である。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2021年度〜2025年度)
  • 分野:午前II
  • 渡した変数の値が実行後に変更されないことが保証されるのは値呼出しだけである。