dポイントプレゼントキャンペーン実施中!

こんにちは、おじゃまします。
間もなく第2種改め・・・を受験する者なんですが、
今更過去問で疑問があって困っています。

タイトルに書いた問3なんですが、どうも理解できません。
call by reference は
(Cでは)「関数に、値を渡さずにアドレス(だけ)を渡すもの」
だと理解しています(いいでしょうか)、この定義だと
答えが選択肢に入ってこないんです・・・

親切などなたか、よろしければコメントをお願いします

A 回答 (2件)

この問題は使用しているプログラム言語を規定していません。


よって、C言語の範囲で考えてはいけません。

C言語はcall by valueである為に単項&演算子と単項*演算子を利用して“擬似的な”call by referenceを実現します。
しかし、この問題で想定している処理系は「言語処理系がcall by referenceである」という前提です。
(構文から推察してPascalを意識していると思われる)

call by referenceの言語処理系では仮引数にデータオブジェクトそのものを与えてもアドレスが渡されます。
呼び出された“手続き”(=関数に相当)では実引数は「アドレスが参照するデータオブジェクトそのもの」として認識されます。

「設問1-a」についての質問ですよね。
    • good
    • 0
この回答へのお礼

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

本当にどうもありがとうございました、
精神安定しました(^^;

お礼日時:2001/04/12 18:40

call by referenceは引数のアドレスを渡す参照渡しであっています。



ただ、過去問の問3がどういう問題かわからないので、
回答できません。
差し支えなければ問3がどういう問題か教えていただけないでしょうか?

この回答への補足

早速のお返事ありがとうございます!
問題をまとめようにもまま打ち込もうにも大変なんですが(汗)、
東京理科大学さんのほうに何て親切な掲載がありました。
大変お手数ですが、よろしければさらっと教えていただきたく思います。

http://www.rs.kagu.sut.ac.jp/%7Einfoserv/j-siken …

※タグが使えませんでした

補足日時:2001/04/12 17:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!