参照に関する記事です。
関数の参照渡しに関しても解説しています。
参照とは?
参照とは、変数に別名を付ける機能のことです。
参照は【&】を使って表現します。
データ型 &別名 = 元の変数;
コーディング例①
#include <iostream>
int A = 10;
int& B = A; // 参照
int main() {
std::cout << B << std::endl;
A = 50;
std::cout << B << std::endl;
return 0;
}
出力
10
50
参照渡し
関数の引数に参照を使うことが出来ます。
このことを参照渡しと呼びます。
参照渡しを使用した場合は、実引数を変更することが出来ます。
コーディング例①
#include <iostream>
void NumChange(int &A, int &B) {
A = 10;
B = 20;
}
int main() {
int X = 1;
int Y = 2;
std::cout << X << std::endl;
std::cout << Y << std::endl;
NumChange(X, Y);
std::cout << X << std::endl;
std::cout << Y << std::endl;
return 0;
}
出力
1
2
10
20
値渡しやポインタ渡しに関しては、上記の記事で解説しています。
実引数を変更したくない場合
参照渡しをする際に、実引数を変更したくない場合があります。
そのような場合には、【const】を使って引数を定数にします。
引数を定数にすることで、コンパイル時にエラーが発生するようになります。
void NumChange(const int &A, const int &B) {
A = 10;
B = 20;
}
わざわざ定数にしてまで参照渡しを使う意味が分からないと思いますが、構造体などの大きなデータを関数に渡す際は、メモリの節約になるようです。
定数に関しては、上記の記事で解説をしています。
¥22,999 (2023/05/01 10:00時点 | Amazon調べ)
ポチップ
¥36,980 (2023/05/16 22:17時点 | Amazon調べ)
ポチップ