Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Передача параметров по значению



При передаче по значению параметр рассматривается как локальная переменная, значение которой устанавливается при вызове подпрограммы, может быть использовано и изменено подпрограммой, но не может повлиять на вызывающий фрагмент. В качестве параметра может указываться переменная или константа, подходящая параметру по типу.

При передаче параметра по значению значение параметра, заданное при вызове подпрограммы, заносится в стек (см. рис. 8). Затем подпрограмма выделяет собственную память для локальной переменной, переносит в нее значение параметра, переданное через стек, и обеспечивает доступ к этой локальной переменной через имя параметра. После завершения подпрограммы измененное значение параметра теряется и никак не влияет на данные вызывающего фрагмента. Рассмотрим пример, в котором подпрограмма изменяет значение параметра, переданного ей по значению (см. листинг 2.20).


Рис. 8. Механизм передачи параметров по значению

Листинг 2.20. Передача параметров по значению

Program ChangingParams1;

Var

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

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

параметром, передаваемым по значению}

Begin

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

Никаких изменений данных вызывающего фрагмента не

происходит}

end;

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

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

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

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

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

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

передается целочисленная константа 80, что допустимо

при передаче параметров по значению}

End.





Дата публикования: 2014-11-02; Прочитано: 317 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...