Vorherige Seite

Eine Ebene hoch

Nächste Seite

5.2 Zeiger

Jede Speicherzelle im Arbeitsspeicher eines Computers hat eine eindeutige Adresse. Eine Information, z.B. der Zahlenwert einer Zahl vom Typ int, wird unter einer Adresse abgelegt, und kann über diese Adresse wieder abgerufen oder verändert werden. Ein Großteil der Handhabung von Adressen läuft für den Programmierer unsichtbar im Hintergrund ab. C bietet aber die Möglichkeit, mit diesen Adressen zu arbeiten.

Wird in C mit einer Adresse gearbeitet, ist sie nicht selbst die Information, sondern die Adresse zeigt auf die Stelle im Speicher, an der die Information steht. Von daher wird in C nicht von Adressen, sondern von Zeigern (engl. pointer) gesprochen.

In der folgenden Tabelle ist ein Ausschnitt eines Speichers dargestellt. (Das Beispiel wurde mit dem Compiler von Borland Version 5.5 auf einem Pentium III Rechner mit Windows ME generiert.) Ab Adresse 01C0 7D04 ist die ganze Zahl 70.000.000 als int gespeichert. Weiter unten im Speicher, ab Adresse 01C4 E358 ist nun die Adresse dieser Zahl selbst im Speicher abgelegt. Hier spricht man von einem Zeiger, der auf die Zahl mit dem Inhalt 70.000.000 zeigt.

C bietet die Möglichkeit, über diesen Zeiger mit der int-Zahl zu arbeiten. Die folgenden Abschnitte befassen sich mit dieser Technik.

5.2.1 Einfache Zeiger

5.2.2 Zeigervektoren

5.2.3 Zeiger auf Zeiger