Zeigeroperatoren

Der unäre Referenzoperator (Adressoperator)

&<variable>

bestimmt die Adresse der Variablen im Operanden.

Der unäre Dereferenzoperator (Zugriffsoperator)

*<pointer>

erlaubt den (indirekten) Zugriff auf die Daten auf welche der Pointer zeigt. Die Daten können wie eine Variable manipuliert werden.

//	Pointer operators
#include <iostream.h>
main()
{
  int i, j, *pint;
 
  i    = 10;                    // i  = 10
  pint = &i;          // pointer initialization
  j    = *pint;       // access on int
 
  *pint = 0;                    // i  = 0
 
  *pint += 2;                   // i += 2 
}

gesamtes Programm

In obigem Beispiel fungiert *pint als int-Variable und dementsprechend können auch alle dafür definierten Operationen mit ihr ausgeführt werden.

Achtung : In dem Programmfragment

{ 
  double *px;
  *px = 3.1;     // WRONG!
}

wird zwar Speicherplatz für den Zeiger reserviert (8 Byte), jedoch ist der Wert von px noch undefiniert und daher wird der Wert 3.1 in einen dafür nicht vorgesehenen Speicherbereich geschrieben $\Longrightarrow$ mysteriöse Programmabstürze und -fehler.

Es gibt eine spezielle Zeigerkonstante 0, welche auf die (hexadezimale) Speicheradresse 0x0 (= NULL) verweist und bzgl. welcher eine Zeigervariable getestet werden kann.