Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Область действия и область видимости переменных



В языке C++ каждая функция это отдельный блок программы. Попасть в тело функции можно только с помощью вызова данной функции, то есть нельзя оператором безусловного перехода goto перейти в середину другой функции.

Как уже отмечалось выше, у каждой переменной должен быть оригинальный идентификатор, но в разных функциях (блоках) переменные могут иметь одинаковые идентификаторы.

Области действия переменных различаются на три основных типа переменных:

глобальные, локальные и формальные параметры.

Локальные переменные - это переменные объявленные внутри блока или внутри функции. В C++ возможно описание локальных переменных внутри любого блока программы. (Блок - несколько операторов заключенных в фигурные скобки) При этом переменная будет доступна только внутри того блока, внутри которого она описана. Локальная переменная существует только во время выполнения функции (блока), в которой она описана при выходе из функции (блока) эта переменная перестает существовать и ее значение теряется. Таким образом, нельзя ожидать, что данные содержащиеся в локальной переменной останутся неизменными при последующих вызовах функции. При описании локальной переменной ее начальное значение не определено, то есть она не будет равняться нулю!

main()

{

int first

...............

{

int second

}

Переменная second в этом месте не определена.

}

main()

{

int first;

...............

{

int first; // переменная отличная от first во внешнем блоке

...............

}

...............

}



Глобальные переменные - это переменные, объявленные вне какой-либо функции. В отличие от локальных переменных, глобальные переменные могут использоваться в любом месте программы, но перед их использованием они должны быть описаны.

Язык C++ гарантирует, что в отличие от локальных переменных при описании глобальных переменных без явного инициализатора значение будет равно нулю. Глобальная переменная существует в течении всего времени выполнения программы.

Область действия глобальной переменной - вся программа.

Использование глобальных переменных имеет свои недостатки:

1. они занимают память в течении всего времени работы программы

(локальные переменные освобождают память после завершения функции или блока, в которой они описаны)

2. использование глобальных переменных делает функции менее общими и затрудняет их использование в других программах.

Формальные параметры - это переменные объявленные при описании функции.

Формальные параметры могут использоваться в теле функции как локальные переменные, которыми они по сути дела и являются. Область действия формальных параметров - блок являющийся телом функции. Формальные параметры существуют только во время выполнения функции.

Пример:

#include<iostream.h>

int var1=12;// описана как глобальная переменная

main()

{

if(cout<<"\n внешний блок if() \n")

{

int var1=34;

cout<<"во внешнем блоке var1="<<var1;//34

if(cout<<"\n внутренний блок if() \n")

{

int var1=56;

cout<<"\n во внутреннем блоке var1="<<var1;//56

}

cout<<"\n во внешнем блоке var1="<<var1;//34

}

cout<<"\n в main() var1="<<var1;//12

}





Дата публикования: 2014-12-08; Прочитано: 1341 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...