Pascal - Appel de sous-programme par valeur

le call by valueLa méthode de transmission d'arguments à un sous-programme copie la valeur réelle d'un argument dans le paramètre formel du sous-programme. Dans ce cas, les modifications apportées au paramètre à l'intérieur de la fonction n'ont aucun effet sur l'argument.

Par défaut, Pascal utilise call by valueméthode pour passer des arguments. En général, cela signifie que le code dans un sous-programme ne peut pas modifier les arguments utilisés pour appeler le sous-programme. Considérez la définition de la procédure swap () comme suit.

procedure swap(x, y: integer); 
var
   temp: integer;

begin
   temp := x;
   x:= y;
   y := temp;
end;

Maintenant, appelons la procédure swap () en passant des valeurs réelles comme dans l'exemple suivant -

program exCallbyValue;
var
   a, b : integer;
(*procedure definition *)
procedure swap(x, y: integer); 

var
   temp: integer;

begin
   temp := x;
   x:= y;
   y := temp;
end;

begin
   a := 100;
   b := 200;
   writeln('Before swap, value of a : ', a );
   writeln('Before swap, value of b : ', b );
   
   (* calling the procedure swap  by value   *)
   swap(a, b);
   writeln('After swap, value of a : ', a );
   writeln('After swap, value of b : ', b );
end.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200