2013年10月20日

猫もわからない値型/参照型の値渡し/参照渡し

プログラムの話です。値と参照、ちょっとややこしいので自分なりにまとめておきます。


基本は
 値型 ・・・ int、double、構造体、など
 参照型 ・・・ 配列、クラス、string、など

・引数として変数の中身をコピーして渡すのが値渡し
・引数として変数をそのまま渡すのが参照渡し

です。


お宝 → 値
宝の地図 → 参照情報(アドレス)
とします。



値型の値渡し
atai_atai.jpg

コピーしたお宝を何しようと元のお宝は変化しません。




参照型の値渡し
san_atai.jpg

お宝は一つですが、宝の地図は2つある状態。コピーした宝の地図を書き換えることができますが、お宝は別のものになります。




値型の参照渡し
atai_san.jpg

お宝をそのまま渡します。お宝そのものが変化すると思ってください。




参照型の参照渡し
san_san.jpg

宝の地図をそのまま渡します。お宝は変化しますし、地図も変更します。




これではなんのこっちゃ分からないですか? プログラムの例とその結果を書いた方が分かりやすかったかも。
自分の頭ではこんな感じですけども、なにか理解のヒントになれれば幸いです・・・。(汗)
posted by ロンド at 20:07| Comment(0) | 日記・つぶやき | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください