К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

1. Локальная область видимости переменной

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

Рассмотрим следующую программу:

#include <iostream>
 
int add(int a, int b) // здесь создаются переменные a и b
{
   // a и b можно видеть/использовать только внутри этой функции
   return a + b;
} // здесь a и b выходят из области видимости и уничтожаются
 
int main()
{
   int x = 7; // здесь создается и инициализируется переменная x
   int y = 8; // здесь создается и инициализируется переменная y
   // x и y можно использовать только внутри функции main()
   std::cout << add(x, y) << std::endl; // вызов функции add() с a = x и b = y
   return 0;
} // здесь x и y выходят из области видимости и уничтожаются

 

Параметры a и b функции add() создаются при вызове этой функции, используются только внутри нее и уничтожаются по завершении выполнения этой функции.

Переменные x и y функции main() можно использовать только внутри main() и они также уничтожаются по завершении выполнения функции main().

Для лучшего понимания давайте детально разберем ход выполнения этой программы:

   выполнение начинается с функции main();

   создается переменная x в функции main() и ей присваивается значение 7;

   создается переменная y в функции main() и ей присваивается значение 8;

   вызывается функция аdd() с параметрами 7 и 8;

   создается переменная a в функции add() и ей присваивается значение 7;

   создается переменная b в функции add() и ей присваивается значение 8;

   выполняется операция сложения чисел 7 и 8, результатом является значение 15;

   функция add() возвращает значение 15 обратно в caller (в функцию main());

   переменные a и b функции add() уничтожаются;

   функция main() выводит значение 15 на экран;

   функция main() возвращает 0 в операционную систему;

   переменные x и y функции main() уничтожаются.

Обратите внимание, если бы функция add() вызывалась дважды, параметры a и b создавались и уничтожались бы также дважды. В программе с большим количеством функций, переменные создаются и уничтожаются часто.

Локальная область видимости предотвращает возникновение конфликтов имен.

 


Предыдущая        В начало страницы       Следующая
1