Czym się roznia te dwie deklaracje procedury:
procedure a(b : Integer);
procedure a(var b : Integer);
Chodzi mi o to co daje 'var' przed nazwa zmiennej w deklaracji procedury lub funkcji.
Czym się roznia te dwie deklaracje procedury:
procedure a(b : Integer);
procedure a(var b : Integer);
Chodzi mi o to co daje 'var' przed nazwa zmiennej w deklaracji procedury lub funkcji.
procedure a(b : Integer);
begin
b:=5;
end;
zmienna:=9;
a(zmienna);
//wartość zmiennej zmienna wynosi 9
--------------------------------
procedure a(var b : Integer);
begin
b:=5;
end;
zmienna:=9;
a(zmienna);
//wartość zmiennej zmienna wynosi 5
Myślę, że ten przykład wyjaśnia wszystko.
Hmm, tez tak przypuszczalem, jednak przy takiej sytuacji:
procedure a(p : PByteArray);
mimo iz nie zasosuje var i tak dziala tak jakby to 'var' bylo...jesli w procedurze zmienie cos w zmiennej p to w rzeczywistosci tez sie zmieni.
<font color="red">Poniewarz</span> tutaj juz działasz na pointerach!