• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:下記の問題の解き方を教えて下さい。)

「Main」と「SubX」のプログラムの実行結果と変数の値

このQ&Aのポイント
  • 主プログラム Main と副プログラム SubX の実行結果と変数 A,B の値の組合せについて解説します。
  • プログラムの実行後の変数 A,B の値は、以下の組合せのどれが正しいでしょうか。
  • 変数 A,B の値を表にまとめると、以下のようになります。

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

  • ベストアンサー
noname#156136
noname#156136
回答No.2

値渡しとは、データのコピーを副プログラムに渡す方法です。 あなたが書類の原本を持っているとして、その書類をコピーして他人に渡します。他人は、書類のコピーを使って仕事をします。書類のコピーですから、書き込みしようが破いて捨てようが、あなたが所有している書類の原本には何の影響もありません。 参照渡しとは、データの格納場所を副プログラムに教える方法です。 あなたが書類の原本を持っているとして、5番ロッカーに保管してあります。あなたは他人に、「その書類なら、5番ロッカーに入っていますから、使ってください」と教えてあげます。その他人は、5番ロッカーに行って、書類の原本を使って仕事をします。もし、書類に書き込みをしたら、それは原本なので、原本の内容が書き換えられてしまいます。 副プログラムに値渡しをした場合、副プログラムがどんな処理をしようが、元の値は変更されません。 副プログラムに参照渡しをした場合、副プログラムが値を変更すれば、元の値が変更されます。 SubX(A,B)のBは値渡しなので、Bの値は変化しません。 Aは参照渡しなので、副プログラム内部の処理によって値が変化します。

TheUchuuNoKori
質問者

お礼

参照渡しと値渡しとの後でのCallだという点を踏まえまして、これの正解を選ぶのですね。

TheUchuuNoKori
質問者

補足

有り難う御座います。 全く存じていなかった用語に関しましての質問でしたので、丁寧に教えて頂けまして、非常に助かりました。

その他の回答 (1)

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

http://officetanaka.net/excel/vba/tips/tips94.htm 値渡しの場合、SubX内で受け取った値を変更しても呼び出し元のMainには影響がありません。 参照渡しの場合、SubX内で受け取った値を変更すると呼び出し元のMainにも影響があります。 Cが参照渡しでDが値渡しですから、もとの変数でいうとAには変更がなくてBは書き換えられてしまうという事。 あとは考えてみてください。

TheUchuuNoKori
質問者

補足

有り難う御座います。 プログラムを学ばせて頂いた経験が御座いませんので、紹介して下さったサイトの内容を理解し難いのですが、学習の方向性が分かりました。

関連するQ&A