Ein Pointer ist eine Variable, die die Adresse speichert, an der ein
Objekt im Speicher steht. Dadurch, daß dem Pointer die Adresse bekannt ist,
Ein Pointer muß zwar immer nur eine Speicheradresse speichern, und wird daher i. allg. für jede Objektart denselben Speicherplatz beanspruchen (der so lang ist, wie eine maximal adressierbare Speicherstelle), dennoch müssen wir (i. allg.) bei seiner Deklaration angeben, auf was für ein Objekt er zeigen soll. Dies ist zwar nicht für die Adressierung notwendig, wenn wir aber wissen wollen, was da nun im Speicher steht, so ist es wichtig den Typ des Objekts zu kennen.
Angenommen an der Speicherstelle 1 stehe ein Integer. Wir hätten nun eine Zeigervariable, die auf Speicherstelle 1 zeige. Wir wollen nun den Wert des Objekts herausfinden. Ohne die Information, daß der Zeiger auf ein Integer zeigt, wissen wir weder, wie viele Speicherstellen das Objekt umfaßt, noch, wie es zu interpretieren ist. Wir lesen eine Folge von Einsen und Nullen, ohne zu wissen was sie bedeuten.