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

Область действия и передача параметров



Существует шестьосновных способа передачи параметров:

1. by value (значением). В вызываемой процедуре выделяется место (память) для параметров и туда помещаются их значения.

Это самый аккуратный способ. Его еще можно назвать самым математическим Изменения, которые претерпевает переданный параметр, ни как не повлияют на его значение в вызывающей программе. Это сродни тому, что от математике мы вправе ожидать естественного порядка вещей: вычисление функции не приводит к изменению значения аргумента.

2. by result (результатом). Память для хранения значения параметра выделяется в вызывающей программе. Это достаточно экзотический способ. Он может иметь место, например, при вызове программы генерации случайных чисел

3. by value-result (значением-результатом). Сочетание первых двух способов.

4. by reference (ссылкой). Память выделяется в вызывающей программе, а в качестве параметра передается ссылка (указатель) на эту память. Это наиболее часто используемый способ.

5. by name (именем). При этом способе производится текстовая замена формального параметра фактически переданным. Этот способ прежде всего используется в различных претрансляторах и макроассемблерах.

6. by stack (стеком) Это "неклассический" способ, который получил распространение в связи с появлением "нестандартных" языков типа Форт.

Весьма условный (позаимствованный) пример. Их обычно приводят, чтобы поразить воображение.

Пример:

prog P(x); - фрагмент вызванной процедуры.

B[1]:=1; I:=1;

B[2]:=1; x:=x+2;

I:=1; B[I]:=10;

(*) P(B[I]); I:=2;

x:=x+2;

Фрагмент

вызывающей

программы.

Процедура вызывается в точке (*).

А поражает то, что при пяти основных способах передачи параметров получаются разные результаты вычислений:

Способ передачи B[1] B[2]
     
  - -
     
     
     




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



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