ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
プログラミング言語などにおける、関数やメソッド等への引数の渡し方の一つで、参照値を値渡しするもの。共有渡しとも。
Javaの参照の値渡しは、C/C++でいうところのポインター渡しである。参照の値渡しという表現は参照という値の渡し方がプログラミング言語で発生してからの呼称ではあるが、そう呼ばれる以前から、大抵のプログラミング言語はオブジェクトを渡すときはこの形態となる。
C++などの参照渡しと呼称は似ているが、参照渡しはメモリー上で同じ場所を指す参照を別名として渡すのに対し、参照の値渡しは単にポインターを渡すだけなので、渡された先での値の書き換え方によっては参照渡しとは動作結果が異なる。ただ、ポインターを渡すとは言ってもC/C++のようなポインター変数を使うのではなく、呼び出し先では変数は参照として受け取る。このため参照の値渡しと呼ばれる。
参照渡しでも参照の値渡しでも、呼び出し先でその仮引数に対して書き換えを実施すると、呼び出し元も同様に変化する。
ただし呼び出し先で新しいオブジェクトを作成し仮引数の指す先を書き換えた場合、参照渡しと参照の値渡しでは結果が異なる。
参照渡しの場合はそのオブジェクトに置き換わるため呼び出し元にもその新しいオブジェクトが反映されるが、参照の値渡しの場合は仮引数の値を変えるだけであり呼び出し元には影響しない。
つまり参照の値渡しでは新しいオブジェクトを返すということはできず、受け取ったオブジェクトを書き換えることができるだけである。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます