解説
関数の引数の参照渡しは、仕組みを知らないとバグの温床になる部分です。参照が入っている変数を引数に取る際、参照渡しとなります。
参照渡しの際、関数の引数を通して値を書き換えると、関数の呼び出し元でも値が書き変わります。関数に渡されているのは参照であって、中身がコピーされているわけではありません。プログラムを書き始めた頃は、よく勘違いしてしまうので注意が必要になります。
また、参照渡しを利用して、配列などの引数の中身を直接書き換えるようなことも行われます。仕組みを把握して、上手く活用してください。
サンプル
参照渡しの処理を、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「参照渡し」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
// 配列1を作成して出力
var arr1 = [0, 1, 2, 3, 4, 5];
document.writeln("arr1 : " + arr1.toString());
ref(arr1)
document.writeln("arr1 : " + arr1.toString());
// 参照渡しで中身を書き換え
function ref(arg) {
arg[1] = 10;
arg[2] = 20;
}
</script></pre>
</body>
</html>
arr1 : 0,1,2,3,4,5 arr1 : 0,10,20,3,4,5
