• ベストアンサー

第2種情報処理技術者平成12年度秋期午後問3

こんにちは、おじゃまします。 間もなく第2種改め・・・を受験する者なんですが、 今更過去問で疑問があって困っています。 タイトルに書いた問3なんですが、どうも理解できません。 call by reference は (Cでは)「関数に、値を渡さずにアドレス(だけ)を渡すもの」 だと理解しています(いいでしょうか)、この定義だと 答えが選択肢に入ってこないんです・・・ 親切などなたか、よろしければコメントをお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

この問題は使用しているプログラム言語を規定していません。 よって、C言語の範囲で考えてはいけません。 C言語はcall by valueである為に単項&演算子と単項*演算子を利用して“擬似的な”call by referenceを実現します。 しかし、この問題で想定している処理系は「言語処理系がcall by referenceである」という前提です。 (構文から推察してPascalを意識していると思われる) call by referenceの言語処理系では仮引数にデータオブジェクトそのものを与えてもアドレスが渡されます。 呼び出された“手続き”(=関数に相当)では実引数は「アドレスが参照するデータオブジェクトそのもの」として認識されます。 「設問1-a」についての質問ですよね。

learner2001
質問者

お礼

お返事ありがとうございました! 個人的にこの試験にはCでしか臨んでおらず、 完全にハマっていました。で、 今日は休日だったのでこの解説を書店で調べたんですが、 どの本にも Pascal 的だとは書いていなくて。 Cの知識を前提としている、と 書いている本さえありました。 何だったんだ?(^^; 本当にどうもありがとうございました、 精神安定しました(^^;

その他の回答 (1)

  • arthur
  • ベストアンサー率34% (15/43)
回答No.1

call by referenceは引数のアドレスを渡す参照渡しであっています。 ただ、過去問の問3がどういう問題かわからないので、 回答できません。 差し支えなければ問3がどういう問題か教えていただけないでしょうか?

learner2001
質問者

補足

早速のお返事ありがとうございます! 問題をまとめようにもまま打ち込もうにも大変なんですが(汗)、 東京理科大学さんのほうに何て親切な掲載がありました。 大変お手数ですが、よろしければさらっと教えていただきたく思います。 http://www.rs.kagu.sut.ac.jp/%7Einfoserv/j-siken/H12b2/pm03.html ※タグが使えませんでした

関連するQ&A

専門家に質問してみよう