PR

【C++】参照とは?【参照渡し・別名】

アイキャッチ C++
この記事は約3分で読めます。

参照に関する記事です。
関数の参照渡しに関しても解説しています。

のんびり丸

WEBアプリの開発等をしています。
日々の学習の備忘録として運営していこうと思います。

のんびり丸をフォローする

参照とは?

参照とは、変数に別名を付ける機能のことです。
参照は【&】を使って表現します。

データ型 &別名 = 元の変数;

コーディング例①

#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;
}

わざわざ定数にしてまで参照渡しを使う意味が分からないと思いますが、構造体などの大きなデータを関数に渡す際は、メモリの節約になるようです。

タイトルとURLをコピーしました