Heim >Backend-Entwicklung >C++ >Wann sollte in C eine Referenz oder ein Zeiger übergeben werden: Ein Leitprinzip?

Wann sollte in C eine Referenz oder ein Zeiger übergeben werden: Ein Leitprinzip?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-12 16:31:01778Durchsuche

When to Pass by Reference or Pointer in C  : A Guiding Principle?

Übergabe per Referenz oder Zeiger in C: Ein Leitprinzip

In C verstehen, wann die Übergabe per Referenz und wann Zeiger verwendet werden sollten ist entscheidend. Diese Vorgehensweise kann zu effizientem und fehlerfreiem Code führen.

Allgemeine Situationen

  • Übergabe eines std::string an eine Funktion:

    • foo(std::string*) oder foo(std::string&)?
  • Übergabe eines tr1::shared_ptr an eine Funktion:

    • foo(tr1::shared_ptr* ptr ) oder foo(tr1::shared_ptr& ptr)?

Zeiger vs. Referenzen

Die Übergabe per Referenz bietet Konsistenz, da jedes Objekt als Referenz behandelt werden kann. Die Übergabe von Zeigern bietet jedoch die Flexibilität, Nullptrs und Literale zu verarbeiten.

Snippet-Analyse

Das angegebene Snippet:

map<string, shared_ptr<vector<string>> > adjacencyMap;
vector<string>* myFriends = new vector<string>();
myFriends->push_back(string("a"));
myFriends->push_back(string("v"));
myFriends->push_back(string("g"));
adjacencyMap["s"] = shared_ptr<vector<string> >(myFriends);

hebt die Notwendigkeit hervor um die Eigenschaften von Referenzen und Zeigern zu berücksichtigen:

  • Die Kartenschlüssel verwenden Referenzen, garantiert Speichereffizienz.
  • Der Vektorzeiger ermöglicht eine dynamische Zuordnung und erleichtert die Vektoraddition.

Faustregel

Letztendlich das Richtige Die Wahl hängt von den spezifischen Anforderungen ab. Beachten Sie als Leitprinzip Folgendes:

  • Verwenden Sie Referenzen:Für eine effiziente Speichernutzung und wenn Sie garantierten Zugriff auf das referenzierte Objekt haben.
  • Verwenden Zeiger: Beim Umgang mit Nullptrs, beim Arbeiten mit dynamischem Speicher oder wenn Sie Referenzen selbst ändern müssen.

Das obige ist der detaillierte Inhalt vonWann sollte in C eine Referenz oder ein Zeiger übergeben werden: Ein Leitprinzip?. 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