Студопедия
rus | ua | other

Home Random lecture






Статические и динамические переменные.


Date: 2015-10-07; view: 484.


 

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

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

Рассмотрим распределение памяти:

 
 

 


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


<== previous lecture | next lecture ==>
СД типа указатель. | Образование и уничтожение динамических переменных.
lektsiopedia.org - 2013 год. | Page generation: 0.482 s.