Область видимости

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

В программировании, область видимости (англ. scope) обозначает область программы, в пределах которой идентификатор (имя) некоторой переменной продолжает быть связанным с этой переменной и возвращать её значение. За пределами области видимости тот же самый идентификатор может быть связан с другой переменной, либо быть свободным (не связанным ни с какой из них).

В большинстве языков программирования область видимости переменной определяется местом её объявления. Кроме того, область видимости может задаваться явно с помощью классов памяти или пространств имён.

Виды переменных по области видимости[править | править вики-текст]

В языках, поддерживающих структурное программирование, переменные обычно разделяются на два типа по области видимости:

В объектно-ориентированном программировании каждый объект содержит три специфические области видимости:

  • Закрытая (англ. private) — переменную можно использовать только в реализации объекта;
  • Общедоступная (англ. public) — переменную можно использовать при использовании и инициализации объекта;
  • Защищённая (англ. protected) — переменную можно использовать только в реализации объекта или его потомка[2].

Языки разметки[править | править вики-текст]

Области видимости определяются и для языков разметки. Например, в HTML областью видимости имени элемента управления является форма (HTML) от <form> до </form>[3].

Примеры[править | править вики-текст]

Си[править | править вики-текст]

// Начинается глобальная область видимости.
int countOfUser = 0;
 
int main()
{
    // С этого момента объявляется новая область видимости, в которой видна глобальная.
    int userNumber[10];
}
#include <stdio.h>
int a = 0;  // глобальная переменная
 
int main()
{
    printf("%d", a); // будет выведено число 0
    {
       int a = 1; // объявлена локальная переменная а, глобальная переменная a не видна
       printf("%d", a); // будет выведено число 1
       {
          int a = 2; // еще локальная переменная в блоке, глобальная переменная a не видна, не видна и предыдущая локальная переменная
          printf("%d", a);  // будет выведено число 2
       }
    }
}

Примечания[править | править вики-текст]