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

Локальность и область действия



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

 Пример

VAR A,B,C:Integer;

PROCEDURE Test(A:STRING);

VAR

B:Char;

BEGIN

B:='B';

Writeln(A,B,C);

END;

BEGIN
A:=1;

B:=2;

C:=3;

Test('Str');

Writeln(A,B,C);

END.

 Результат выполнения

StrB3

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

 Пример

CONST

n:Integer=25;

PROCEDURE Test;

CONST

n:Integer=1;

BEGIN

Writeln('Local n=',n);

Inc(n);

END;

BEGIN

Test;

Test;

Writeln('Global n=',n);

END.

 Результат выполнения

Local n=1

Local n=2

Global n=25





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



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