Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
эта переменная доступна для всех функций<br />
// и существует на протяжении всего<br />
// времени работы программы<br />
// (глобальная область видимости)<br />
int intGlobal;<br />
// переменная intChild доступна только в функции child<br />
// и существует только во время выполнения<br />
// функции child() или вызываемой ею<br />
// (область видимости функции)<br />
void child(void)<br />
{<br />
int intChild;<br />
// переменная intParent имеет область видимости функции<br />
void paremt (void)<br />
{<br />
int intParent = 0;<br />
child () ;<br />
int intLater = 0 ;<br />
intParent = intLater;<br />
int main(int nArgs, char* pArgs[])<br />
{<br />
parent();<br />
)<br />
Программа начинает выполнять функцию main (). В первой же строке main () вызывает<br />
функцию parent (). В этой функции выполняется объявление переменной<br />
intParent, которая имеет область видимости, ограниченную функцией. Такая переменная<br />
называется локальной и доступна только в этой функции.<br />
Во второй строке parent О вызывается функция child (). Эта функция также<br />
объявляет локальную переменную — intChild, областью видимости которой являются<br />
функция childO. При этом intParent функции child () недоступна (и область<br />
видимости intParent не распространяется на функцию child О), но сама переменная<br />
продолжает существовать.<br />
После окончания работы функции child () переменная intChild выходит из области<br />
видимости и уничтожается, т.е. она не только недоступна, но и не существует<br />
(память, которую занимала эта переменная, возвращена в пул свободной памяти для<br />
дальнейшего использования).<br />
После возврата из функции child () продолжается выполнение подпрограммы<br />
parent (), и в следующей строке объявляется переменная intLater, которая имеет<br />
область видимости, ограниченную функцией parent (). В момент возврата в функцию<br />
main () переменные intLater и intParent выходят из области видимости<br />
и уничтожаются.<br />
Кроме локальных переменных, программист может объявлять переменные вне<br />
всех функций. Такие переменные называются глобальными и доступны из любого<br />
места программы (их область видимости — вся программа).<br />
Поскольку intGlobal в приведенном коде объявлена глобально, она доступна на<br />
протяжении работы всей программы и внутри любой из трех функций.<br />
Глава 8. Первое знакомство с указателями в C++ 95