ホームページ >バックエンド開発 >C++ >値による呼び出しは C の引数の変更にどのような影響を与えますか?

値による呼び出しは C の引数の変更にどのような影響を与えますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-12 12:06:02773ブラウズ

How Does Call-by-Value Affect Argument Modification in C  ?

C の値による呼び出しについて理解する

この値による呼び出しの例では、changeValue() という関数は整数を受け取ります引数。 main() 関数から渡される実際の引数のコピーを表します。関数が引数の値を 6 に変更すると、main() 関数に格納されている元の値ではなくコピーが変更されます。

これは、値による呼び出しによって引数の新しいコピーが作成されるためです。そしてそれを関数に渡します。したがって、関数内のコピーに加えられた変更は、元の値には影響しません。

参照呼び出しを使用した問題の解決

元の引数を変更するにはmain() から送信される場合は、参照渡し呼び出しを使用する必要があります。これには、コピーではなく実際の引数に参照 (エイリアス) を渡すことが含まれます。

この例では、changeValue() 関数のシグネチャを次のように変更することでこれを実現できます。

void changeValue(int &value)

引数の型の前にアンパサンド (&) を使用することで、関数が元の変数への参照を受け取ることを示します。参照に加えられた変更は、main() の元の引数に直接影響します。

改訂コード:

#include 
using namespace std;

void changeValue(int &value);

int main()
{
  int value = 5;
  changeValue(value);

  cout << "The value is : " << value << "." << endl;

  return 0;
}

void changeValue(int &value)
{
  value = 6;
}

この変更により、changeValue() が設定されると、 6 への参照の場合、main() の元の値は 6 に変更され、「値は : 6 です。」という出力が得られます。

以上が値による呼び出しは C の引数の変更にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。