Информатика и технология программирования


Классы памяти и области действия переменных


Переменные в программе обладают различными свойствами в зависимости от места и способа их определения:



-область действия переменной -та часть программы, в которой эта переменная может быть использована, то есть является доступной;



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

Областью действия переменной могут быть:



-тело функции или блока, ограниченное скобками;



-текущий модуль от места определения или объявле ния переменной до конца модуля;



-все модули программы.

Время жизни переменной определяется тем, кто реально создает эти переменные и выделяет под них память. Возможны три случая:



-переменная создается транслятором при трансляции программы и размещается в программном модуле -такая переменная существует в течение всего времени работы программы;



-переменная создается функцией в стеке в момент начала выполнения функции и уничтожается при выходе из нее;



-переменная создается и уничтожается работающей программой в те моменты, когда она " считает это необходимым" -такие переменные называются динамическими .

Динамические переменные представляют собой особый случай. Они в принципе являются внешним по отношению к языку (и транслятору) средством. На основе комбинаций свойств переменных -области действия и времени жизни - можно определить следующие виды переменных.

l Автоматические переменные. Создаются при входе в функцию или блок и имеют областью действия тело той же функции или блока. При выходе - уничтожаются. Место хранения -стек программы. Инициализация таких переменных заменяется обычным присваиванием значений при их создании. Если функция рекурсивна, то на каждый вызов создается свой набор таких переменных. В Паскале такие переменные называются локальными (общепринятый термин). Термин "автоматические" характеризует особенность их автоматического создания при входе в функцию, то есть время жизни.

Синтаксис определения: любая переменная, определенная в начале тела функции или блока (после "{"), по умолчанию является автоматической.




Начало  Назад  Вперед



Книжный магазин