logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

204 Глава 3

void а(void) {

int x = 25; // каждый раз а присваивается начальное значение

cout « endl « "локальная переменная x в а = " « x

« " после входа в а" « endl; ++x;

cout « "локальная переменная x в а = " « x

« " перед выходом из а" « endl; }

void b(void) {

static int x = 50; // Начальное значение присваивается только

// при первом вызове b

cout « endl « "локальная статическая переменная x = " « x

« " при входе в b" « endl; ++x; cout « "локальная статическая переменная x = " « x

« " при выходе из b" « endl; }

void с(void) {

cout « endl « "глобальная переменная x = " « x

« " при входе в с" « endl; x *= 10;

cout « "глобальная переменная x = " « x « " при выходе из с" « endl;

локальная x во внешней области действия main = 5 локальная x во внутренней области действия main = 7 локальная x во внешней области действия main = 5

локальная переменная x в а = 25 после входа в а локальная переменная x в а = 26 перед выходом из а

локальная статическая переменная x = 50 при входе в Ь локальная статическая переменная x = 51 при выходе из Ь

глобальная переменная x = 1 при входе в с глобальная переменная x = 10 при выходе из с

локальная переменная x в а = 25 после входа в а локальная переменная x в а = 26 перед выходом из а

локальная статическая переменная x = 51 при входе в Ь локальная статическая переменная x = 52 при выходе из Ь

глобальная переменная x = 10 при входе в с глобальная переменная x = 100 при выходе из с

локальная x в main = 5

Рис. 3.12. Пример областей дейавия (часть 2 из 2)

Функции 205