- ベストアンサー
「Main」と「SubX」のプログラムの実行結果と変数の値
- 主プログラム Main と副プログラム SubX の実行結果と変数 A,B の値の組合せについて解説します。
- プログラムの実行後の変数 A,B の値は、以下の組合せのどれが正しいでしょうか。
- 変数 A,B の値を表にまとめると、以下のようになります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
値渡しとは、データのコピーを副プログラムに渡す方法です。 あなたが書類の原本を持っているとして、その書類をコピーして他人に渡します。他人は、書類のコピーを使って仕事をします。書類のコピーですから、書き込みしようが破いて捨てようが、あなたが所有している書類の原本には何の影響もありません。 参照渡しとは、データの格納場所を副プログラムに教える方法です。 あなたが書類の原本を持っているとして、5番ロッカーに保管してあります。あなたは他人に、「その書類なら、5番ロッカーに入っていますから、使ってください」と教えてあげます。その他人は、5番ロッカーに行って、書類の原本を使って仕事をします。もし、書類に書き込みをしたら、それは原本なので、原本の内容が書き換えられてしまいます。 副プログラムに値渡しをした場合、副プログラムがどんな処理をしようが、元の値は変更されません。 副プログラムに参照渡しをした場合、副プログラムが値を変更すれば、元の値が変更されます。 SubX(A,B)のBは値渡しなので、Bの値は変化しません。 Aは参照渡しなので、副プログラム内部の処理によって値が変化します。
その他の回答 (1)
- ok-kaneto
- ベストアンサー率39% (1798/4531)
http://officetanaka.net/excel/vba/tips/tips94.htm 値渡しの場合、SubX内で受け取った値を変更しても呼び出し元のMainには影響がありません。 参照渡しの場合、SubX内で受け取った値を変更すると呼び出し元のMainにも影響があります。 Cが参照渡しでDが値渡しですから、もとの変数でいうとAには変更がなくてBは書き換えられてしまうという事。 あとは考えてみてください。
補足
有り難う御座います。 プログラムを学ばせて頂いた経験が御座いませんので、紹介して下さったサイトの内容を理解し難いのですが、学習の方向性が分かりました。
お礼
参照渡しと値渡しとの後でのCallだという点を踏まえまして、これの正解を選ぶのですね。
補足
有り難う御座います。 全く存じていなかった用語に関しましての質問でしたので、丁寧に教えて頂けまして、非常に助かりました。