参照 は、オブジェクトの別名または代替名です。参照に適用されるすべての演算は、参照が参照するオブジェクトで
動作します。参照のアドレスは、別名が付けられたオブジェクトのアドレスです。
参照型は、型指定子の後に参照宣言子 & を入れることによって定義できます。関数仮パラメーターを除く参照はすべて、定義するときに初期化する必要があります。 参照は一度定義すると再割り当てできません。参照を再割り当てしようとすると、ターゲットへ新しい値が割り当てられます。
関数の引き数は、値によって渡されるため、関数呼び出しは、引き数の実際の値を変更しません。 関数が、引き数の実際の値を修正する必要がある場合、または複数の値を戻す必要がある場合は、引き数は参照によって受け渡し (値による受け渡し に対比) する必要があります。参照による引き数の受け渡しは、参照またはポインターのいずれかを使用して行うことができます。 C と異なり、C++ は、参照によって引き数を渡したい場合には、ポインターの使用を強制しません。 参照を使用する構文は、ポインターを使用するときよりもいくらか簡単です。 参照によってオブジェクトを渡すと、関数は、関数のスコープ内でオブジェクトのコピーを作成しないで、参照されているオブジェクトを作成することができます。オブジェクト全体ではなく、実際の元オブジェクトのアドレスのみがスタックに置かれます。
次に例を示します。
int f(int&); int main() { extern int i; f(i); }
関数呼び出し f(i) からは、引き数が参照によって渡されていることはわかりませ ん。
NULL への参照は認められていません。
関連参照