Mit Zeiger (englisch pointer) wird in der Informatik ein Objekt einer Programmiersprache bezeichnet, das eine Speicheradresse zwischenspeichert.
Der Zeiger referenziert (verweist, zeigt auf) einen Ort im Hauptspeicher des Computers. Hier können Variablen, Objekte oder Programmanweisungen gespeichert sein. Das Erlangen der dort hinterlegten Daten wird als dereferenzieren oder rückverweisen bezeichnet; siehe #Zeigeroperationen.
Ein Zeiger ist ein Sonderfall und in einigen Programmiersprachen die einzige Implementierungsmöglichkeit des Konzepts einer Referenz. Zeiger werden in diesem Sinne auch als Referenzvariable bezeichnet.
Zeiger werden unter anderem dazu verwendet, den dynamischen Speicher zu verwalten. So werden bestimmte Datenstrukturen, zum Beispiel verkettete Listen, in der Regel mit Hilfe von Zeigern implementiert.
Der Zeiger wurde 1964/65 von Harold Lawson eingeführt und in der Programmiersprache PL/I implementiert.