J'ai donc ce morceau de code Pascal:appel Comprendre par la valeur résultat et d'appel par référence differnce
program P;
var a: array [1..2] of Integer;
var i :Integer;
var k :Integer;
procedure update(x,y,z: Integer);
begin
x := x+1;
y := x*2;
x := y;
k := x;
end
begin
a[1] := 5; a[2] := 10;
k := 3;
for i:=1 to 2 do
begin
update(a[i],a[2],k);
print(a);
print(k)
end
end.
(supposons que « print » imprime les éléments du tableau séparés par des espaces, puis imprime une nouvelle ligne et aussi pour un nombre entier il l'imprime juste)
Et j'essaye de comprendre comment différent la sortie serait si l'appel de fonction était par valeur-résultat ou par référence. De toute évidence, s'il s'agissait d'une simple valeur, il est facile de dire que la procédure ne ferait aucune différence sur le paramètre réel, c'est-à-dire que la sortie (en valeur) devrait être: 5 10 3 5 10 3.
Je pense que si c'était valeur-résultat il aurait été, au moins la première itération: 12 12 12. au cas de par référence je me suis trompé. Qu'est-ce que ce serait?
Pourquoi est-ce marqué C++ et pas Pascal? –
désolé, mon mauvais, même si cela ne fait pas vraiment de différence que le sujet de la question n'a rien à voir avec la langue dans laquelle il est écrit. –
Vous avez inclus le code afin que les étiquettes font toute la différence. –