値渡し
値渡しは簡単で、例えば、ある変数に値を代入し、先程の変数をもう一方の変数に渡すと元の変数の値をコピーして変数に入れる 渡し方。

参照の値渡し
参照の値渡しとは、変数aとbがあるとして、例えば、Javaでするときに、変数aにインスタンスを代入する。その際に、aにはインスタンスの 参照値が入る。そのあとに、変数bにaを代入すると、先程、代入された参照値が入る。これが参照の値渡し。

参照渡し
参照渡しは、変数aとbがあるとき、変数aに参照値が代入されたとして、aをbに代入すると、何が起きるかというと、 変数aの中にある参照値ではなく、変数aの入っている参照値がbに渡される。動作は参照の値渡しと似ているが、渡している ものが違う。参照渡しは参照値は渡しているが、ずっとその参照値を渡しているのではないということ。参照の値渡しは参照値を ずっと使い続けているので、実質値渡しということ。
