Читайте также:
|
|
В языке программирования Turbo Pascal существует несколько способов передачи параметров в подпрограммы. Выбор способа передачи зависит от того, являются ли предаваемые значения входными или выходными параметрами.
Различают передачу параметров:
1) по значению;
2) по ссылке;
По значению в подпрограмму передают те значения фактических параметров, которые являются входными данными для подпрограммы и при этом являются простыми значениями. Такие параметры считаются параметрами-значениями.
При передаче по значению значения фактических параметров копируются в область памяти, отводимую под подпрограмму (стек), на место соответствующих формальных параметров. Формальный параметр в этом случае – обычная локальная переменная вызываемой подпрограммы. В качестве начального значения формальному параметру присваивается текущее значение соответствующего фактического параметра. В качестве фактических параметров при этом способе передачи можно использовать константы, имена переменных, значение которых определено, и простые выражения.
Формальные параметры-значения могут изменяться в подпрограмме наряду с прочими переменными, используемыми в подпрограмме, но эти изменения будут строго локальными и никак не отразятся на значениях соответствующих фактических параметров.
По-другому организуется передача параметров по ссылке. В отличие от передачи параметров по значению, при передаче по ссылке в области памяти подпрограммы (в стеке) копии фактического параметра не создается. При передаче данных формальный параметр получает адрес соответствующего фактического параметра (т.е. ссылку на него). Поэтому любая операция над формальным параметром в этом случае осуществляется непосредственно над соответствующим фактическим параметром.
По ссылке передаются два вида параметров: параметры-константы и параметры-переменные.
Параметры-константы используются, когда входными данными являются сложные структурированные переменные (например, массивы). Если передавать такие параметры по значению, то используется слишком много памяти из-за дублирования данных (хотя операция копирования выполняется быстрее, чем передача адреса). Нужно помнить о том, что изменение формального параметра-константы в подпрограмме запрещено (это контролирует компилятор). Параметр-константа в списке формальных параметров предваряется ключевым словом Const (от англ. Constant - постоянная).
Параметры-переменные используются для передачи выходных значений подпрограмм-процедур, т.к. в этом случае изменение формального параметра-переменной приводит к изменению соответствующего фактического параметра. Параметр-переменная в списке формальных параметров предваряется ключевым словом Var (от англ. Variable - переменная). Передача параметра-переменной – это достаточно опасный способ передачи данных, т.к. любая ошибка программиста может привести к искажению данных.
Замечание. Переменные файлового типа всегда передаются как параметры-переменные.
При передаче по ссылке в качестве фактических параметров можно использовать только переменные.
Дата добавления: 2015-07-10; просмотров: 219 | Нарушение авторских прав