C++の基礎:関数のパラメータを参照渡しする方法を学ぶ
概要
こちらの記事で作成した関数では、パラメータは常に値で渡されていました。変数は、関数のパラメータが表す変数にコピーされます。以下の例でおさらいしてみましょう。
#include <iostream>
int add (int a, int b)
{
return a+b;
}
int main()
{
int x = 300, y = 500;
int result = add(x, y);
std::cout << result << '\n';
}
ここでは、xとyの値がaとbのパラメータにコピーされ、加算されて返されます。パラメータを参照として使用することで、そのパラメータに直接アクセスすることができます。C++では、参照はパラメータの型の後にアンパサンド(&)を付けて定義し、それが変数のアドレスを指し示します。そのため関数のパラメータの変数名の前に「&」をつけることで、以下のコードのように参照パラメータとして変更することができます。
#include <iostream>
int add (int& a, int& b)
{
return a+b;
}
int main()
{
int x = 300, y = 500;
int result = add(x, y);
std::cout << result << '\n';
}
ここでは、xとyを単独で渡しており、関数内のaとbの変数に対してコピー操作を行っていません。変数が参照渡しされるということは、コピー操作をせずに、その変数自体を指定して渡すということです。関数のパラメータで指定された変数は、関数に渡された引数と何らかの形で関連づけられます。これにより、関数内で対応するローカル変数の変更した場合、呼び出し元の変数に直接反映させることができます。パラメータの参照渡しは、コピー操作を排除し、関数を高速化するために重要です。