C++ Zeigeroperatoren (& und *)

C++ Operatoren

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

#include <iostream>
 
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 :3000

C++ Operatoren

Weitere Erweiterungen