Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Си++ Занятие 7.doc
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
59.39 Кб
Скачать

1.3. Вложенные блоки в программе

Программа может содержать блоки, вложенные друг в друга, но вложенные друг в друга функции не допускаются, т.е. определение функции не должно содержать определение другой функции.

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

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

Пример 2

int i=1, k=5; // внешние (глобальные) переменные

void main()

{k++;

printf ("%d %d \n", i, k); // i=1, k=6

{// объемлющий блок

int i=0;

printf ("%d %d \n", i, k); // i=0, k=6

{// вложенный блок

int i=2;

k++;

printf ("%d %d \n", i, k); // i=2, k=7

}

k++;

printf ("%d %d \n", i, k); // i=0, k=8

}

printf ("%d %d \n", i, k); // i=1, k=8

}

Обратите внимание, что имя i объявляется три раза, фактически объявляются три разные переменные с одним и тем же именем:

  • В глобальной области,

  • В объемлющем блоке,

  • Во вложенном блоке.

Время жизни каждой из них – от объявления до выхода из блока, в котором переменная объявлена. Глобальная переменная k не переопределяется во внутренних блоках, поэтому существует в единственном экземпляре и видна во всех блоках.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]