Heim > Artikel > Backend-Entwicklung > Wann sollte ich Referenzen vs. Zeiger in C verwenden?
Referenzübergabe vs. Zeiger in C
In C kann es ein verwirrendes Thema sein, zu verstehen, wann Referenzen und Zeiger verwendet werden sollten. In diesem Artikel werden die Nuancen der Referenz- und Zeigerübergabe untersucht und praktische Richtlinien bereitgestellt.
Referenzübergabe:
Die Referenzübergabe wird empfohlen, wenn Folgendes erforderlich ist:
Übergabe per Zeiger:
Übergabe per Zeiger ist erforderlich, wenn:
Best Practices:
Als allgemeine Regel gilt, wann immer möglich, die Weitergabe als Referenz vorzuziehen. Wenn Sie jedoch mit Literalen, Nullzeigern oder Situationen arbeiten, in denen Sie den Zeiger selbst ändern müssen, übergeben Sie ihn per Zeiger.
Beispiel:
Der bereitgestellte Codeausschnitt ist erfolgreich ein Zeiger auf einen dynamisch zugewiesenen Vektor einer Karte. Dies ist ein gültiger Ansatz, da wir sowohl einen neuen Vektor erstellen als auch ihn als Referenz an die Karte übergeben müssen. Durch die Verwendung von Zeigern vermeiden wir die Notwendigkeit, den gesamten Vektor zu kopieren.
#include <iostream> #include <vector> #include <map> #include <string> #include <tr1/memory> #include <algorithm> using namespace std; using namespace std::tr1; int main(){ 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); return 0; }
Das obige ist der detaillierte Inhalt vonWann sollte ich Referenzen vs. Zeiger in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!