平成20年秋期試験問題 午前問39
問39解説へ
プログラム言語における関数呼出し時の引数の性質のうち,適切なものはどれか。
- 値呼出しでは,仮引数の値を変えると実引数の値も変わる。
- 実引数から仮引数に情報を渡す方法として,値呼出し,参照呼出しなどがある。
- 実引数は変数だけであるが,仮引数は変数でも定数でもよい。
- 実引数は呼び出される関数の中だけで有効であるが,仮引数は関数の呼出し側でも有効である。
広告
解説
関数にパラメータ(引数:ひきすう)を渡す方法には「参照渡し」「値渡し」という2つの方法があります。
- 参照呼出し(pass by reference)
- 引数として変数のポインタ(メモリアドレス)を渡す方法。呼び出された関数内で引数の内容に直接アクセスすることになるため、関数内で変数の値を上書きすると元の変数の値にも反映される。
- 値呼出し(call by value)
- 引数に変数が保持する値のコピーを入れて渡す方法。渡された変数は関数内でのみアクセスすることができる、関数内で値を保持する変数は新しいメモリ領域に作成されるため、上書きしても元の変数の値には反映されない。
- 値呼び出しでは呼び出し側と関数内部の変数は独立関係にあるため、仮引数の値を変えても実引数には影響しません。
- 正しい。
- 実引数は変数でも定数でもよいですが、仮引数は変数だけです。
- 逆で仮引数は呼び出される関数の中だけで有効ですが,実引数は関数の呼出し側でも有効です。
広告