Bei der Computerprogrammierung bearbeitet ein Dereferenzierungsoperator, auch als Indirektionsoperator bezeichnet, eine Zeigervariable und gibt den Standortwert oder den l-Wert zurück, auf den er im Speicher verweist. In der Programmiersprache C ist der Deference-Operator mit einem Stern ( * ) gekennzeichnet.
In C können wir beispielsweise eine Variable x deklarieren, die einen ganzzahligen Wert enthält, und eine Variable p, die einen Zeiger auf einen ganzzahligen Wert im Speicher enthält:
int x; int * p;
Hier sagt der Stern dem Compiler: " p ist keine ganze Zahl, sondern ein Zeiger auf eine Stelle im Speicher, die eine ganze Zahl enthält." Hierbei handelt es sich nicht um eine Dereferenzierung, sondern um eine Zeigerdeklaration.
Jetzt können wir p mit dem Operator & auf den Ort setzen, der für den Wert von x zugewiesen ist. Dies bedeutet "Adresse von".
p = & x;
Diese Aktion teilt dem Compiler mit: "Die Adresse im Speicher, auf die p zeigt, ist die Adresse, die Sie für die Ganzzahl x zugewiesen haben."
Wenn Sie den Wert von x mit der konventionellen Methode auf 1 setzen und den Wert drucken, wird die Ausgabe 1 sein .
x = 1; printf ("% d", x);
Wir können den Wert von x jedoch auch ändern, indem wir auf p verweisen. Wir machen das mit einem Sternchen:
* p = 2; printf ("% d", x);
Und die Ausgabe ändert sich auf 2 .
Mit anderen Worten, nachdem p als Zeiger desselben Typs wie x deklariert wurde und dann auf den Wert von x gesetzt ist, können wir x und * p austauschbar verwenden. Da sich beide auf dasselbe beziehen, ändert das Ändern des Wertes von einem den Wert des anderen.
Zeiger, Programmierbegriffe, Variable