05.09.2016 Views

Стефан Р. - С++ Для чайников

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!