C++ Zeigeroperatoren (& und *)
C++ bietet zwei Zeigeroperatoren: den Adressoperator & und den Dereferenzierungsoperator *.
Ein Zeiger ist eine Variable, die die Adresse einer anderen Variablen enthält. Man kann sagen, dass eine Variable, die die Adresse einer anderen Variablen enthält, auf diese andere Variable „zeigt“. Die Variable kann einen beliebigen Datentyp haben, einschließlich Objekten, Strukturen oder Zeigern.
Adressoperator &
& ist ein unärer Operator, der die Speicheradresse seines Operanden zurückgibt. Wenn var beispielsweise eine Ganzzahlvariable ist, dann ist &var ihre Adresse. Dieser Operator hat dieselbe Präzedenz wie andere unäre Operatoren und wird von rechts nach links ausgewertet.
Man kann den Operator & alsAdressoperatorlesen, das bedeutet, dass&varals „die Adresse von var“ gelesen wird.
Dereferenzierungsoperator *
Der zweite Operator ist der Dereferenzierungsoperator *, das Gegenstück zum &-Operator. * ist ein unärer Operator, der den Wert der Variablen an der durch seinen Operanden angegebenen Adresse zurückgibt.
Bitte sehen Sie sich das folgende Beispiel an, um die Verwendung dieser beiden Operatoren zu verstehen.
Beispiel
using namespace std;
int main ()
{
int var;
int *ptr;
int val;
var = 3000;
// Adresse von var ermitteln
ptr = &var;
// Wert von ptr ermitteln
val = *ptr;
cout << "Wert von var :" << var << endl;
cout << "Wert von ptr :" << ptr << endl;
cout << "Wert von val :" << val << endl;
return 0;
}
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000Weitere Erweiterungen