Delphi. Pascal
Урок 14. Передача параметров по значению и по ссылке
Параметры в процедуры и функции можно передавать 2 способами - по значению и по ссылке. Отличия между этими двумя способами следующие - при передаче параметра по значению в процедуру (функцию) передается копия переменной, а при передаче по ссылке - оригинал (сама переменная). Рассмотрим эти 2 способа более подробно.
При передаче параметра по значению изменение этого параметра внутри вызываемой процедуры (функции) никак не отразится на ней. Вот поясняющий пример:
...
//Объявление процедуры.
procedure proc(X: Integer);
begin
//Изменяем X.
X:=1;
end;
var
r: Integer;
begin
r:=25;
//Вызов процедуры.
proc(r);
//Выведется 25
Writeln(r);
Readln;
end.
Как вы видите, переменная r свое значение не изменила.
При передаче же по ссылке изменение параметра внутри процедуры (функции) влечет за собой изменение и самой передваемой переменной. Вот пример:
...
//Объявление процедуры.
procedure proc(var X: Integer);
begin
//Изменяем X.
X:=1;
end;
var
r: Integer;
begin
r:=25;
//Вызов процедуры.
proc(r);
//Выведется 1
Writeln(r);
Readln;
end.
Как вы видите, тут переменная k изменила свое значение. Обратите внимание, что для передачи переменной по ссылке мы пишем ключевое слово var:
...
procedure proc(var X: Integer);
...