Ein Pointer(Zeiger) ist die Adresse, unter der eine Variable im Speicher abgelegt ist. Wenn Du z.B. eine Variable von einer Prozedur ändern lassen willst, übergibst Du die Adresse, unter der die Variable zu finden ist (entweder direkt als Pointer oder über das Schlüsselwort var). Das erspart das Kopieren und anschließende Neuzuweisen, was sonst erforderlich wäre. Für ein besseres Verständnis kannst Du mal hier in der
DP nach dem Tutorial zu Zeigern und verketteten Listen suchen, dort ist das recht gut erklärt.