Zeiger (Programmierung)
Ein Zeiger oder Pointer ist in der Programmierung eine Variable, die auf eine andere Variable (oder einen anderen Speicherbereich) verweist.Zeiger kommen vor allem in maschinennahen Programmiersprachen wie z.B. Assembler, C oder C++ vor, während man den Gebrauch in streng typisierten Sprachen wie Modula-2 oder Ada stark einschränkt und sie in Sprachen wie Java oder Eiffel vollständig verborgen sind. Mit erstgenannten Sprachen ist es möglich, Zeiger auf beliebige Stellen im Speicher zu erzeugen oder mit ihnen zu rechnen.
In der Regel werden Zeiger in Form von Speicheradressen umgesetzt. Man verwendet sie, um auf andere Variablen oder Funktionen zu verweisen, wobei man bei Zeigern immer zwischen zwei Zugriffsverfahren unterscheidet: einmal auf die im Zeiger gespeicherte Speicheradresse und einmal auf den Wert oder die Funktion, auf welche die gespeicherte Adresse verweist. Die Operation, bei der man den Wert oder die Funktion aus dem Zeiger gewinnt, nennt man Dereferenzieren.
Der Grund dafür, dass hochentwickelte Programmiersprachen den Gebrauch von Zeigern einschränken, liegt darin, dass Programmierfehler bei der Arbeit mit Zeigern sehr schwere Folgen haben, z. B. Programmabstürze, unbemerkte Beschädigung von Daten oder "verlorene" Speicherbereiche (das Programm benötigt ständig mehr Speicher, bis das Betriebssystem nicht mehr liefern kann).
Zeiger können aber auch in bestimmten Situationen den Programmablauf beschleunigen. Beispielsweiße ist es sinnvoll bei Funktionsaufrufen den Zeiger eines Objektes als Funktionsparameter zu übergeben anstatt das Objekt selber.