On fournit en paramètre une variable (ou plutôt son adresse) et on travaille directement sur celle-ci, et non sur la valeur contenue dans cette variable.
Pour réaliser un passage de paramètre par adresse, il faut lors de la déclaration de la procédure (ou de la fonction) ajouter le mot clé var devant la déclaration du paramètre concerné. Il est ainsi possible de récupérer les modifications effectuées sur cette variable, à la fin de l'exécution de la procédure.
procedure ID_PROC (var X, Y : real; Z : integer);
Lors de l'appel, des paramètres réels sont substitués aux paramètres formels.
Tout changement sur le paramètre formel variable change aussi le paramètre effectif spécifié lors de l'appel.
Seule une variable peut être substituée aux paramètres réels, il est impossible de faire l'appel avec une constante ou une expression évaluable.
Exemple :
ID_PROC (U, V, 7); { correct }
ID_PROC (4, A - B, 8); {tout à fait incorrect }
Lorsqu'il y a nécessité de renvoyer une modification au programme appelant, on emploie un passage par adresse.