Heim >Backend-Entwicklung >C++ >Detaillierte Erläuterung der Übergabemethoden von C++-Funktionsparametern: Übergabe als Wert und Übergabe als Referenz

Detaillierte Erläuterung der Übergabemethoden von C++-Funktionsparametern: Übergabe als Wert und Übergabe als Referenz

王林
王林Original
2024-04-12 10:51:01836Durchsuche

C++-Parameterübergabemethoden sind in Wertübergabe und Referenzübergabe unterteilt. Durch die Wertübergabe wird eine Kopie der Funktionsparameter erstellt, ohne die Originalvariablen zu beeinflussen; durch die Referenzübergabe werden die Originalvariablen direkt bearbeitet. Die Wahl hängt von Ihren Anforderungen ab: Schützen Sie die Originalvariable durch Wertübergabe, ändern Sie die Originalvariable oder verbessern Sie die Effizienz durch Referenzübergabe.

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

Detaillierte Erläuterung der Übergabemethoden von Funktionsparametern in C++: Übergabe als Wert und Übergabe als Referenz

In C++ können Funktionsparameter auf zwei Arten übergeben werden: Übergabe als Wert und Übergabe als Referenz. Es ist von entscheidender Bedeutung, den Unterschied zwischen diesen beiden Übergabemethoden zu verstehen, da er sich auf das Verhalten der Funktion und der übergebenen Argumente auswirkt.

Wertübergabe

Bei der Wertübergabe wird eine Kopie der Funktionsparameter an die Funktion übergeben. Das bedeutet, dass alle an die Funktion übergebenen Änderungen nicht in den ursprünglichen Variablen widergespiegelt werden, die in der aufrufenden Funktion übergeben wurden.

Vorteile:

  • Schützen Sie ursprüngliche Variablen vor zufälliger Modifikation
  • Einfach zu begründen Sie das Verhalten einer Funktion

Beispiel:

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

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

Pass für Referenz

In Pass for Referenz, Referenz, Referenz, die Referenz des Parameters wird an die Funktion übergeben. Dies bedeutet, dass alle Änderungen, die an den an die Funktion übergebenen Parametern vorgenommen werden, in den ursprünglichen Variablen widergespiegelt werden, die an die aufrufende Funktion übergeben wurden.

Vorteile:

  • Datenkopien reduzieren und die Effizienz verbessern
  • Kann die Originalvariablen in der aufrufenden Funktion ändern

Beispiel:

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,表明原始变量被修改为副本的两倍
}

Welche Versandmethode soll ich wählen?

Die Wahl der Übergabemethode hängt von der jeweiligen Situation ab:

  • Wenn Sie die Originalvariable schützen oder unnötige Kopien vermeiden müssen, verwenden Sie die Übergabe als Wert.
  • Wenn Sie die ursprünglichen Variablen in der aufrufenden Funktion ändern oder die Effizienz verbessern müssen, verwenden Sie bitte die Referenzübergabe.

Praktischer Fall

Angenommen, wir haben eine Funktion, die die Groß-/Kleinschreibung der Eingabezeichenfolge ändern muss. Wir können die Wertübergabe verwenden, um sicherzustellen, dass die Eingabezeichenfolge nicht geändert wird, oder die Übergabe per Referenz, um die ursprüngliche Zeichenfolge direkt zu ändern:

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

// 引用传递(修改原始字符串)
void printUppercase(std::string& input) {
  input.toUpper();
}

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Übergabemethoden von C++-Funktionsparametern: Übergabe als Wert und Übergabe als Referenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn