Cplusplus-cpp-function-call-by-value

提供:Dev Guides
移動先:案内検索

値によるC ++関数呼び出し

引数を関数に渡す*値による呼び出し*メソッドは、引数の実際の値を関数の仮パラメーターにコピーします。 この場合、関数内のパラメーターを変更しても、引数には影響しません。

デフォルトでは、C ++は値渡しを使用して引数を渡します。 一般に、これは、関数内のコードが関数の呼び出しに使用される引数を変更できないことを意味します。 次のような関数* swap()*の定義を検討してください。

//function definition to swap the values.
void swap(int x, int y) {
   int temp;

   temp = x;/*save the value of x*/
   x = y;   /*put y into x*/
   y = temp;/*put x into y*/

   return;
}

さて、次の例のように実際の値を渡すことで関数* swap()*を呼び出しましょう-

#include <iostream>
using namespace std;

//function declaration
void swap(int x, int y);

int main () {
  //local variable declaration:
   int a = 100;
   int b = 200;

   cout << "Before swap, value of a :" << a << endl;
   cout << "Before swap, value of b :" << b << endl;

  //calling a function to swap the values.
   swap(a, b);

   cout << "After swap, value of a :" << a << endl;
   cout << "After swap, value of b :" << b << endl;

   return 0;
}

上記のコードがファイルにまとめられ、コンパイルされて実行されると、次の結果が生成されます-

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200

これは、関数内で値が変更されていても、値に変更がないことを示しています。