値渡しと参照渡し

| コメント(0) | トラックバック(0)

Java の参照と C++ の参照の違い - Life like a clown

懐かしい。昔、全く同じことで悩んでいたことがある。
大学の研究室でCにとっぷり浸かり、バイトでJavaを使っていた頃、javaのとあるmethodに渡したStringオブジェクトがmethodの外側に出てきたときに変化しないことに対して非常に混乱したことがある。(参照渡しなんだからmethod抜けても変化してるだろ!?的な勘違い)

Cを学んでいた当時は値渡しか参照渡しの2パターンで考えていたけど、その2つの間に参照の値渡し(Cで言うとポインタ渡しか)があるんだよな。参照の値渡しだと、結局コピーなので、methodの内側でいくら仮引数に対して変更を加えたとても、外側の、実引数の参照先は変わらない。HashMapオブジェクトのように状態を持つオブジェクトなら参照先の内容はmethod内で変化しているかもしれないけどね。

値渡し、参照渡しは色んな本で見かけるが、これに加えて参照の値渡しの説明もしている本にまだ出会ったことがない。こーゆうのってみんな経験で学んでいくものなのかな?

トラックバック(0)

トラックバックURL: https://hoge.sub.jp/blog-cgi/mt/mt-tb.cgi/1462

このブログ記事について

このページは、Lyoが2010年1月27日 01:00に書いたブログ記事です。

ひとつ前のブログ記事は「お茶の水と秋葉原を散策」です。

次のブログ記事は「FirefoxからGoogle Chromeへの乗り換え」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 7.9.3