La définition du ointeur par Kernighan (l'inventeur du langage C) est : "Une variable pointeur est une variable qui contient l'adresse mémoire d'une autre variable". Dans le principe, cela permet donc d'accéder directement à la mémoire, et de gérer soi-même, explicitement, les blocs mémoire dont le programme a besoin. Ce qui offre, toujours dans le principe, un contrôle plus fin de la gestion mémoire qu'avec des variables typées plus classiques.