In C ++ gibt es zwei Möglichkeiten, auf Speicherorte zuzugreifen oder zu verwalten. Der erste ist durch die Verwendung Verweise und die zweite durch Verwendung Zeiger. Beide Verweise Und Zeiger Ermöglichen Sie uns, Daten zu vermeiden, Daten zu verhindern, unnötige Speicherzuweisung oder Deallokation zu verhindern und eine bessere Leistung zu erzielen. Aber die Art, wie sie es tun, ist anders. Beide Referenz Und Zeiger sind wesentliche Merkmale, die ausgiebig zum Zugriff und zur Manipulation von Daten verwendet werden. Im Gegensatz zu ihren offensichtlichen Ähnlichkeiten weist jeder einzelnen charakteristische Attribute auf, die sie unter verschiedenen Umständen vorzuziehen machen.
Dieser Artikel zeigt einen Vergleich zwischen Verweise Und Zeiger in c++.
Referenz in c++
A Referenz In C ++ ist ein Alias oder einen alternativen Namen einer vorhandenen Variablen. Einmal festgelegt, die Referenz wird so behandelt, als wäre es die gleiche Variable und jede Änderung an der Referenz betrifft auch die entsprechende Variable. Verweise Kann nicht auf Null hinweisen, und ihr Wert kann nach der Initialisierung nicht geändert werden.
#enthalten
Verwenden von Namespace STD;
int main ()
int i = 7;
int & r = i;
Cout << "Value of i : " << i << endl;
Cout << "Value of i reference : " << r << endl;
Rückkehr 0;
Im obigen Code initialisieren wir eine Ganzzahl I mit Wert 7 und seiner Ganzzahl Referenz wird mit der Cout -Anweisung erstellt und gedruckt.
Ausgang
Zeiger in c++
Zeiger, Auf der anderen Seite sind Variablen, die die Speicheradresse einer anderen Variablen speichern. Sie ermöglichen den indirekten Zugriff auf den Speicherort und bieten die Fähigkeit, den Speicher dynamisch zuzuweisen und zu bearbeiten. nicht wie Verweise, Zeiger kann null sein und auf verschiedene Orte hinweisen, die auf ihrem Wert basieren.
#enthalten
Verwenden von Namespace STD;
int main ()
int var = 5;
int *ip;
ip = &var;
Cout << "Value of var variable: ";
Cout << var << endl;
Cout << "Address stored in ip variable: ";
Cout << ip << endl;
Cout << "Value of *ip variable: ";
Cout << *ip << endl;
Rückkehr 0;
Im obigen Code initialisieren wir einen int var mit Wert 5 und a Zeiger wird erstellt und auf die variable var hingewiesen. Der Wert, die Adresse und der Wert der Zeiger werden dann auf dem Bildschirm gedruckt.
Ausgang
Referenzen vs. Zeiger in c++
Das Folgende sind die Unterschiede zwischen Verweise Und Zeiger in c++.
1: Syntax
Verweise Stellen Sie eine sauberere Syntax an und beseitigen Sie die Notwendigkeit eines Derferenzbetreibers (z. B. * oder ->). Da sie garantiert nicht null sind, verringern sie das Risiko von Segmentierungsfehlern, ein häufiger Fehler, der beim Versuch auftritt, über einen Null auf einen ungültigen Speicherort zuzugreifen Zeiger.
2: Vielseitigkeit
Zeiger sind vielseitiger und flexibler als Verweise. Sie werden in e ausgiebig verwendet.G., Dynamische Speicherzuweisung oder Speichermanipulationsaufgaben, wie z Zeiger Arithmetik. Zeiger sind auch bei der Erstellung komplexer Datenstrukturen wie verknüpften Listen, Bäumen oder Grafiken erforderlich, bei denen ein Knoten auf einen anderen Knoten verweisen muss.
3: Flexibilität
nicht wie Verweise, Zeiger kann neu zugewiesen werden, um auf ein anderes Objekt zu verweisen oder sogar auf NULL eingestellt zu werden. Diese Flexibilität ermöglicht die dynamische Zuordnung des Speichers, die häufig in komplexen Programmen benötigt wird. Zeiger kann auch verwendet werden, um die Speicherverwendung zu verfolgen, Datenstrukturen zu implementieren und Werte zu übergeben Referenz, unter anderem.
4: Funktionen
Ein weiterer entscheidender Unterschied ist die Art und Weise, wie Verweise Und Zeiger werden an Funktionen übergeben. Vorbeigehen Referenz Ermöglicht die Funktion, die ursprüngliche Variable direkt zu ändern, ohne eine neue Kopie der Variablen zu erstellen. Im Gegensatz dazu, an a zu gehen Zeiger erstellt eine neue Kopie der Zeiger, Nicht die ursprüngliche Variable, die möglicherweise die Speicherverwendung des Programms erhöht. Andererseits vorbeifahren Zeiger Bietet die Fähigkeit, die zu ändern Zeiger, das ist unmöglich, wenn Sie vorbeikommen Referenz.
5: Sicherheit
Verweise werden oft als sicherere Option aufgrund ihrer Einschränkungen angesehen. Sie ermöglichen keine Speicherlecks oder baumelnden Zeiger, was bei der Verwendung übliche Probleme sein kann Zeiger. In einigen Fällen sind jedoch Zeiger erforderlich, da sie mehr Flexibilität ermöglichen.
Abschluss
Beide Verweise Und Zeiger haben einzigartige Funktionen, die sie unter bestimmten Umständen vorzuziehen machen. Verweise sind nützlich für einfache Datenmanipulationen und bieten eine sauberere Syntax an Zeiger sind vielseitiger und notwendig für die dynamische Speicherzuweisung, die Speichermanipulation und die Erstellung komplexer Datenstruktur. Das Verständnis der angemessenen Verwendung und Einschränkungen jedes Formulars ist wichtig, um einen robusten und effizienten Code zu entwickeln.