ホームページ  >  記事  >  バックエンド開発  >  C++ 関数のパラメータ受け渡しメカニズムとは何ですか?

C++ 関数のパラメータ受け渡しメカニズムとは何ですか?

王林
王林オリジナル
2024-04-11 12:30:01564ブラウズ

C 関数パラメータの受け渡しメカニズムは、値による受け渡しと参照による受け渡しに分かれています。値を渡すと、パラメータ値のコピーが作成されます。コピーを変更しても、元のパラメータには影響しません。基本的なデータ型に使用されます。参照渡しはパラメーター アドレスを直接渡し、関数が複合型の場合は元のパラメーターを変更できるようにします。

C++ 函数参数传递机制有哪些?

C 関数のパラメーター受け渡しメカニズム

C では、パラメーター受け渡しメカニズムによって、関数が呼び出し元から渡されたパラメーターを受け取る方法が決まります。値渡しと参照渡しという 2 つのメカニズムがあります。

値による受け渡し

値による受け渡しでは、パラメーター値のコピーが作成され、関数のスタック フレームに保存されます。コピーを変更しても、呼び出し元の関数の実際のパラメーターには影響しません。値による受け渡しは通常、プリミティブ データ型 (int、float など) に使用されます。

コード例:

void increment(int value) {
  value++; // 修改局部副本
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 5,因为 a 的值没有改变
}

参照渡し

参照渡しではパラメータのコピーは作成されませんが、 pass パラメータ自体のアドレスは参照によって渡されます。これにより、関数は呼び出し元の関数の元のパラメーターを直接変更できるようになります。参照渡しは通常、複合型 (オブジェクト、コンテナーなど) に使用されます。

コード例:

void increment(int& value) {
  value++; // 修改原始参数
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 6,因为原始参数被修改
}

実用的なケース

値渡しの例:関数パラメーターの計算四角い。

int square(int value) {
  return value * value;
}

int main() {
  int a = 5;
  int result = square(a);
  std::cout << result << std::endl; // 输出 25,因为按值传递不会影响 a
}

参照渡しの例: 2 つの関数パラメータの値を交換します。

rree

以上がC++ 関数のパラメータ受け渡しメカニズムとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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