Les pointeurs sont surtout intéressant lorsqu'il s'agit d'allouer dynamiquement de la mémoire pour des structures ou des variables.
Les listes chaînées sont un exemple "interne" d'une utilisation des pointeurs.
Pour faire simple, si tu dois créer des objets dont tu ne connais pas le nombre à l'avance, tu alloues de la mémoire à chaque fois, que tu associes à un pointeur, qui va aussi te permettre d'affecter des valeurs. Une fois que tu n'as plus besoin d'un objet, tu restitues la mémoire pointée et voilà! Ni vu ni connu.
En pascal on utilise d'ailleurs très souvent les mots clés "new" et "dispose" qui, s'ils étaient implémentés en pure, faciliteraient peut-être les choses pour la programmation objet et la gestion des structures (ceci dit sans connaitre toutes les possibilités de pure à ce sujet).