Как проходит передача параметров Паскаль? Передача параметров в языке Паскаль может проходить в два способа: либо по ссылке, либо по значению. Параметры, передаваемые по ссылке, называются параметрами-переменными, а передаваемые по значению — соответственно параметрами-значениями (обычные локальные переменные).
Одно из главных отличий параметров-переменных от параметров значений состоит в том, что в заголовке функции или процедуры перед параметрами-переменными используется ключевое слово var:
Параметры-переменные Паскаль:
var m:integer;
begin
. . .
end;
Параметры-значения Паскаль:
var r: real;
begin
r:= x1;
x1:= x2;
x2:= r;
end;
В случае передачи по ссылке все изменения, которые происходят в теле функции (процедуры) с формальными параметрами, влекут за собой мгновенные аналогичные изменения соответствующих формальных параметров. При этом изменения осуществляются с переменными вызывающего блока, вследствие этого по ссылке происходит передача выходных параметров.
В случае вызова соответствующие фактические параметры могут являться лишь переменными параметрами. При передаче по значению происходит копирование значений фактических параметров в соответствующие им формальные параметры. В процессе выполнения функции (процедуры) в процессе изменения этих значений фактические параметры (т.е. исходные данные) не могут измениться.
Поэтому подобным образом могут передаваться только входные данные (данные из вызывающего блока). В этом случае и переменные, и константы, и выражения можно использовать как фактические параметры.
С практической точки зрения выбор типа передачи параметров сводится к расстановке в заголовке функции (процедуры) ключевого слова var со всеми параметрами, с помощью которых и происходит обеспечение результата выполнения данной подпрограммы. Но так как функция возвращает лишь один результат, то не следует пользоваться параметрами-переменными в ее заголовке.