Читайте также: |
|
Область видимости определяет, из каких частей программы возможен доступ к переменной, а класс памяти — время, в течение которого переменная существует в памяти компьютера.
Переменные, имеющие локальную область видимости, доступны внутри того блока, в котором они определены.
Переменные, имеющие область видимости файла, доступны из любого места файла, в котором они определены.
Существует два класса памяти: automatic (автоматический) и static (статический).
У переменных, имеющих класс памяти automatic, время жизни равно времени жизни функции, внутри которой они определены.
У переменных, имеющих класс памяти static, время жизни равно времени жизни всей прог-ы.
Глобальные переменные имеют статический класс памяти: время их существования определяется временем выполнения программы. Кроме того, глобальные переменные (определяются вне каких-либо функций) видимы во всем исходном файле, начиная с места их объявления. Статические локальные переменные начинают своё существование при первом вызове функции, к которой она принадлежит. Далее переменная существует на всем протяжении выполнения программы, но область их видимости ограничена той функцией, к которой они принадлежат.
Если явной инициализации глобальной переменной не происходит, например, при определении переменной: int exvar; то в момент создания этой переменной ей автоматически будет присвоено значение, равное 0. В этом состоит различие между локальными и глобальными переменными.
Время жизни у статических локальных переменных совпадает со временем жизни глобальных переменных, правда, с той разницей, что существование статической локальной переменной начинается при первом вызове ф-ии, к которой она принадлежит.
Статические локальные переменные используются в тех случаях, когда необходимо сохранить значение переменной в памяти после того, как выполнение функции будет завершено.
Дата добавления: 2015-08-17; просмотров: 74 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Перегруженные функции. Встроенные функции. Рекурсивные функции. | | | Объявление и инициализация одномерного и двумерного массивов. Работа с элементами массива через указатель. |