C++関数のパラメータの受け渡し方法「値渡し」と「参照渡し」の詳細説明

王林
リリース: 2024-04-12 10:51:01
オリジナル
795 人が閲覧しました

C パラメータの受け渡し方法は、値の受け渡しと参照の受け渡しに分けられます。値渡しでは、元の変数に影響を与えることなく関数パラメーターのコピーが作成され、参照渡しでは、元の変数が直接操作されます。選択はニーズに応じて異なります。値渡しを使用して元の変数を保護するか、元の変数を変更するか、参照渡しを使用して効率を向上させます。

C++ 函数参数的传递方式详解:值传递和引用传递

#C 関数パラメータの受け渡し方法の詳細な説明: 値の受け渡しと参照の受け渡し

#C では、関数のパラメータを次のように指定できます。値渡しと参照渡しの 2 つの方法で渡されます。これら 2 つの受け渡しメソッドの違いを理解することは、関数と渡される引数の動作に影響を与えるため、非常に重要です。

値渡し

値渡しでは、関数パラメータのコピーが関数に渡されます。これは、関数に渡された変更は、呼び出し元の関数に渡された元の変数には反映されないことを意味します。

利点:

  • 元の変数を誤って変更しないように保護します
  • 関数の動作を推論するのが簡単です

例:

void printValue(int x) {
  x *= 2;  // 修改副本
}

int main() {
  int a = 5;
  printValue(a);  // 传递 a 的副本
  std::cout << a << std::endl;  // 输出 5,表明原始变量没有被修改
}
ログイン後にコピー

参照渡し

参照渡しでは、パラメーターの参照が関数に渡されます。これは、関数に渡されたパラメータに加えられた変更は、呼び出し元の関数に渡された元の変数に反映されることを意味します。

#利点:

#データのコピーを削減し、効率を向上させます
  • #呼び出し元の関数で元の変数を変更できます
例:

void printAndDoubleValue(int& x) {
  std::cout << x << std::endl;  // 输出原始变量
  x *= 2;  // 修改原始变量
}

int main() {
  int a = 5;
  printAndDoubleValue(a);  // 传递 a 的引用
  std::cout << a << std::endl;  // 输出 10,表明原始变量被修改为副本的两倍
}
ログイン後にコピー

どの配送方法を選択しますか?

受け渡し方法の選択は、特定の状況によって異なります。

元の変数を保護する必要がある場合、または不要なコピーを回避する必要がある場合は、値による受け渡しを使用します。
  • 呼び出し元の関数の元の変数を変更する必要がある場合、または効率を向上させる必要がある場合は、参照渡しを使用してください。
実践的なケース

入力文字列の大文字と小文字を変更する必要がある関数があるとします。値渡しを使用して入力文字列が変更されないことを確認することも、参照渡しを使用して元の文字列を直接変更することもできます:

// 值传递(输入字符串保持不变)
void printLowercase(const std::string& input) {
  std::cout << input.toLower() << std::endl;
}

// 引用传递(修改原始字符串)
void printUppercase(std::string& input) {
  input.toUpper();
}
ログイン後にコピー

以上がC++関数のパラメータの受け渡し方法「値渡し」と「参照渡し」の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!