Vorherige Seite

Eine Ebene hoch

Nächste Seite

5.2.3 Zeiger auf Zeiger

Wie fast alles in C können auch Zeiger ineinander verschachtelt werden. Ein einfacher Zeiger zeigt auf Datentypen wie int oder float. Es ist nun möglich einen Zeiger zu definieren, der wieder auf einen Zeiger zeigt. In der folgenden Tabelle ist das dargestellt.

In der Tabelle ist die Variable n vom Typ int und wird mit dem Wert 70.000.000 initialisiert. Die Variable pn ist ein Zeiger auf die Variable n und zeigt auf die Adresse 01C0 7D04. Schließlich ist die Variable ppn ein Zeiger auf den Zeiger pn. ppn ist ein Zeiger auf einen Zeiger, der seinerseits auf den Datentyp int zeigt. Der Zeiger ppn wird mit int **ppn initialisiert.

Um auf den Zahlenwert zuzugreifen, muss der Sternoperator doppelt angewendet werden. Beispiel:

Wo können Zeiger auf Zeiger sinnvoll verwendet werden? Als Beispiel sollen zwei Dateien mit einer Funktion geöffnet werden. Die Funktion soll die Datei öffnen und eventuelle Fehler abfangen. Der Aufruf erfolgt mit:

Bei einem Fehler soll die Funktion einen Wert ungleich null zurückgeben, so dass das Programm ggf. abgebrochen werden kann. Damit der Zeiger inp innerhalb der Funktion manipuliert werden kann, muss ein Zeiger auf diese Variable übergeben werden. (Zum Thema Parameterübergabe siehe Abschnitt 4.1.2). Die Implementierung könnte folgendermaßen erfolgen:

In der Funktion ist file ein Zeiger auf einen Zeiger, der auf den Datentyp FILE zeigt. Man spricht von Zeiger auf Zeiger auf FILE.