var w procedurze

0

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.

0
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.

0

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.

0

<font color="red">Poniewarz</span> tutaj juz działasz na pointerach!

1 użytkowników online, w tym zalogowanych: 0, gości: 1