L’algorithmique autorise bien entendu l’utilisation des pointeurs. Vous déclarez un pointeur comme n’importe quelle 
variable et au même endroit, sous le mot­clé VAR. 
nom : pointeur sur type pointé
Par convention, les pointeurs commencent par la lettre p. Ce n’est pas une obligation mais vous vous y retrouverez 
beaucoup mieux si vous suivez cette recommandation. Comme vu précédemment, le type pointé doit être du même 
type que la variable pointée. Si vous créez un pointeur sur un entier, le pointeur sera de type entier : il pointe sur un 
entier. 
Var
txt :chaîne
ptxt :pointeur sur chaîne
cpt :entier
pInt :pointeur sur entier
Le  pointeur  peut  recevoir  une  adresse  statique,  c’est­à­dire  une  adresse  en  hexadécimal  que  vous  rentrez  vousmême. C’est une affectation directe. En pratique cette méthode n’est que très rarement utilisée, sauf cas spécifiques 
(si on sait qu’à telle ou telle adresse se trouve toujours la même donnée en toute circonstance) et vous préférerez 
passer l’adresse d’une variable connue. 
pointeur←adresse de variable
Avec les variables du petit exemple, cela donne : 
Début 
txt←"Hello World" 
ptxt←adresse de txt 
cpt←10 
pInt←adresse de cpt
Tout  comme  en  C,  vous  utiliserez  l’étoile  pour  accéder  au  contenu  de  la  variable  pointée,  tant  en  lecture  qu’en 
affectation. Suite du programme : 
Afficher *ptxt 
*ptxt←"Salut tout le monde" 
Afficher txt 
*pInt←20 
cpt←cpt+1 
Afficher cpt
À la fin, que contiennent txt et cpt ? Respectivement "Salut tout le monde" et 21. 
Il se peut qu’un pointeur n’ait pas encore reçu d’adresse et donc pointe sur nulle part. C’est embêtant car c’est le 
plantage assuré si vous tentez de l’utiliser. Pour éviter ce problème, vous lui affecterez une valeur générique, qui ne 
représente rien, mais qui pourra cependant être testée. C’est la valeur NIL (Not Identified Link). En C, c’est NULL, et 
en Java null. NIL est une sorte d’équivalent de zéro, mais qui est reconnue telle quelle (si vous comparez NIL et zéro, 
vous aurez un retour faux). 
pInt←NIL 
Fin
  Attention  :  c’est  à  vous  de  tester  si  un  pointeur  est  positionné  sur  NIL  avant  de  l’utiliser  !  Un  accès  à  un 
pointeur contenant NIL provoquera une erreur. 
Dernier point, mais ceci devrait vous sembler évident, vous avez le droit de créer des pointeurs sur n’importe quel 
type de variable, y compris des enregistrements. C’est même l’un des piliers de l’utilisation des pointeurs. La suite du 
chapitre y fera fortement appel. 
Type 
Structure tarticle 
ref:chaîne 
libelle:chaine 
prix:réel 
FinStruct 
Var 
- 6 -
© ENI Editions - All rigths reserved - Jonifar lina
168
Précédent

- 168/220

Suivant