参照 (reference)は、すでに存在する別の変数を参照する変数。
変数が参照であることを示すには、その型の直後に1個の&を置く。
例えば、既存のint型変数iへの参照としてrを宣言するには、次のように書く。

関数には通常、引数が値で渡される(pass-by-value)。つまり、関数は呼び出されると
新しい変数に引き続きの値をコピーする。値で渡された引数は、書き換えてもその影響
が関数を呼び出しを超えて永続しない。例えば、次に示すSwap関数の間違った実装を見よう。
これは二つの整数値を交換しょうとしている。

このSwapの問題では、aとbが値のコピーなので、呼び出しに使われた
変数の値を交換できないことだ。これを解決するには、Swapの引数に変数への参照を宣言する。

引数を参照渡し (pass-by-reference)にすれば、その引数に対して関数で行った変更は、
その関数の終了後も永続する。
ただし、aとbをへの参照にするなら、実際に存在する変数への
参照でなければならない、
という点に注意が必要である。引数に一時的な値を渡すことは出来ない。
例えばSwap(50,100)は50も100に宣言された変数ではないから無効である。