пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Область видимости и время существования переменных

 
В языках С и С++ определены правила обзора, которые устанавливают такие понятия, как видимость и время жизни (существования) объектов. В самом общем смысле достаточно различать две области видимости - глобальную и локальную.
Глобальная область видимости существует вне всех других областей. Имя, объявленное в глобальной области, известно всей программе. Например, глобальная переменная доступна для использования всеми функциями в программе.Глобальные переменные существуют на протяжении всего жизненного цикла программы.
Локальная область видимости определяется границами блока, т.е. начинается с открывающей фигурной скобки и оканчивается закрывающей фигурной скобкой. 
Имя, объявленное в локальной области, известно только внутри этой области. Поскольку блоки могут быть вложенными, локальные области также могут быть вложенными. Самой распространенной локальной областью является область, определенная функцией. Локальные переменныесоздаются при входе в их блок, а разрушаются при выходе из блока. Это означает, что их значения не хранятся между вызовами функций. Чтобы сохранить значения переменных между вызовами, можно использовать модификатор static.
 
В языке С++ и версии С99 локальные переменные можно объявлять практически в любом месте блока, а в версии С89 они должны быть объявлены в начале блока до выполнения каких-либо инструкций "действия".
Пример 1
void f(int a) 
скобка
int a;
 a = 10; 
int b;  // ОК для С++ и С99, но не для С89 
 ....
скобка
Глобальная переменная должна быть объявлена вне всех функций, включая main(). Глобальные переменные, как правило, размещаются в начале файла перед функцией main(), т.к. переменная должна быть объявлена до ее использования; кроме того, размещение глобальных переменных в определенном месте облегчает чтение программы.
 
Формальные параметры функции также являются локальными переменными, и их можно использовать не только как средство для получения значений аргументов при вызове функции, но и как локальные переменные.

21.01.2014; 14:48
хиты: 929
рейтинг:0
Точные науки
информатика
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь