|
|
||
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 |