[C++] 参照渡しを使うときとは

C++

なんとか投稿頻度を落とさずにできておりますが、これが後何日続くのかーー

ということで今回は、最近少しではありますが、参照渡しについてわかったことがあったので、それを投稿しようと思います。

ソースコード

#include <iostream>

using namespace std;

void swap1(int a, int b) {
  int tmp = a;
  a = b;
  b = tmp;
}

void swap2(int& a, int &b) {
  int tmp = a;
  a = b;
  b = tmp;
}

int main(void) {
  int a, b;
  
  cout << "a : "; cin >> a;
  cout << "b : "; cin >> b;

  swap1(a, b);

  cout << "swap1を使いました" << endl;
  cout << "a : " << a << endl;
  cout << "b : " << b << endl;

  swap2(a, b);

  cout << "swap2を使いました" << endl;
  cout << "a : " << a << endl;
  cout << "b : " << b << endl;


}

/* 実行結果

a : 5
b : 3
swap1を使いました
a : 5
b : 3
swap2を使いました
a : 3
b : 5

*/

参照渡しがどういう時に使うのか

上記のアルゴリズムの実行結果をご覧ください。

参照渡しを使用していないswap1()関数はa, bの値が変化していません。

対してswap2()関数はaとbの値が変化していますね。

なので参照渡しを使用するときはメイン関数内にある変数を変えたいときに使うといいかなと思います。

まだまだ習いたてなので、不安ではありますが、違っていたら指摘の方よろしくお願いします。

今回は以上になります。

ではまた。

コメント

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