guida

Guida Pascal - 41. Passaggio di parametri per valore e per riferimento

41. Passaggio di parametri per valore e per riferimento

Nel capitolo precedente abbiamo analizzato il concetto di parametro legato alle procedure, ora è fondamentale distinguere due modi differenti per passare i parametri alla procedura:

Nel caso del passaggio dei parametri per valore, i valori delle variabili del programma principale vengono copiate nei parametri della procedura.
I cambiamenti effettuati sui parametri della procedura non influenzano i valori delle variabili del programma principale.
La sintassi per effettuare un passaggio di parametri per valore è la seguente:

nome_procedura(parametro_1:tipo_di_dato_1, parametro_2:tipo_di_dato_2)

Nel caso del passaggio dei parametri per indirizzo, i parametri della procedura fanno riferimento all'indirizzo della cella di memoria delle variabili del programma principale.
In questo caso a differenza del precedente, i cambiamenti effettuati sui parametri della procedura influenzano i valori delle variabili del programma principale.
La sintassi per effettuare un passaggio di parametri per indirizzo è la seguente:

nome_procedura(var parametro_1:tipo_di_dato_1, var parametro_2:tipo_di_dato_2)

Vediamo un esempio:

program Valore_Indirizzo;
uses crt;
var a, b:integer;
procedure Valore (x:integer);
begin
  x:=5*x;
  writeln('Il valore di X e''', x);
end;
procedure Indirizzo (var x:integer);
begin
  x:=5*x;
  writeln('Il valore di X e''', x);
end;
begin
  a:=5;
  b:=2;
  Valore(a);
  Indirizzo(b);
  writeln('Il valore di a e''',a);
  writeln('Il valore di b e''',b);
  readln;
end.