Лекция: Передача параметров по ссылке. Параметры-переменные

Второй механизм передачи параметров — по ссылке — подразумевает возможность изменения подпрограммой данных вызывающего фрагмента программы. Для этого в качестве параметра вызывающий фрагмент должен использовать переменную, адрес которой будет передан в подпрограмму через стек (см. рис. 9). Далее подпрограмма обеспечивает доступ к переданному адресу по имени параметра. Соответственно, изменения, производимые с параметром в подпрограмме, влияют на ту переменную, которая указана в качестве параметра.

 

 


Рис. 9. Механизм передачи параметров по ссылке

Для указания компилятору на необходимость передачи параметра по ссылке перед описанием соответствующего параметра указывается специальный модификатор параметра — ключевое слово Var (от англ. Variable — переменный):

Procedure (..., Var <Параметр>: <Тип параметра>,...);

Так как при использовании параметров-переменных в подпрограмму должен быть передан некоторый адрес, то в качестве параметра, передаваемого по ссылке, должны использоваться только переменные. Изменим предыдущий пример таким образом, чтобы параметр передавался в процедуру по ссылке (см. листинг 2.21).

Листинг 2.21. Передача параметров по ссылке

Program ChangingParams2;

Var

B: Integer; {Описание целочисленной переменной}

Procedure Proc (Var A: Integer); {Описание процедуры Proc с одним

параметром, передаваемым по ссылке}

Begin

А := 154; {Изменение значения параметра, переданного в

процедуру. Одновременно с этим изменяется значение

переменной, переданной в качестве параметра}

end;

Begin {Начало раздела описания логики программы}

B := 200;, {Изменение значение переменной B}

Ргос(B); {Вызов процедуры Proc, в качестве параметра передается

адрес переменной B, после окончания работы

процедуры, значение переменной изменится и станет

равным 154}

End.

Параметры, передаваемые по ссылке, называют параметрами-переменными (от англ. Variable parameter — параметр-переменная).

 

Вопросы с ответами для повторения по разделу 2

еще рефераты
Еще работы по информатике