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
Freigeben: 2024-11-12 16:31:01
Original
770 Leute haben es durchsucht

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage