1-12-3. 参照渡し

公開日: 14:30 1. 基本編/1-12. 関数/1-12-3. 参照渡し


関数の引数への参照渡しは引数の参照を仮引数へコピーします。関数内部で、参照は呼び出し時の実引数へのアクセスに使われます。これは関数内部での引数の変更が呼び出し時に渡した引数に影響することを意味します。

参照で値を渡すには、他の値と同じように引数参照を関数に渡します。それに応じて、次に示す引数の示す2つのint型整数を交換するswap関数()のように、関数の引数を参照型として宣言する必要があります。
// 値を交換する関数の定義
void swap(int &x, int &y)
{
   int temp;
   temp = x; // xを保存
   x = y;    // y を x に代入
   y = temp; // x を y に代入
  
   return;
}

それでは、swap()関数に参照を渡して呼び出してみましょう。

#include <iostream>
using namespace std;

// 関数定義
void swap(int &x, int &y);

int main ()
{
   // ローカル変数の宣言
   int a = 100;
   int b = 200;
 
   cout << "交換前のaの値 :" << a << endl;
   cout << "交換前のbの値 :" << b << endl;

   // 参照変数を使ってswap()関数を呼び出し
   swap(a, b);

   cout << "交換後のaの値 :" << a << endl;
   cout << "交換後のbの値 :" << b << endl;
 
   return 0;
}

上記のコードを一つのファイルに入れてコンパイル・実行すると、次の結果が得られます。
交換前のaの値 :100
交換前のbの値 :200
交換後のaの値 :200
交換後のbの値 :100

関数の仮引数をswap(int &x, int &y)とすることで呼び出し時にswap(a, b);と&をつけなくても参照が渡される点に気をつけてください。
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿