Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Локальные и глобальные переменные

Читайте также:
  1. IV. Глобальные проблемы современного мира.
  2. V1: Глобальные проблемы окружающей среды
  3. VII. Локальные нормативные акты юридических лиц.
  4. А) лихорадка, симптомы интоксикации, локальное укорочение перкуторного звука, локальные хрипы
  5. А) Ссылочные переменные б) Параллельные массивы
  6. БИЛЕТ №12 Вопрос 1 Глобальные проблемы современности.
  7. Будущее человечества и глобальные проблемы современности
  8. Виртуальные локальные сети (VLAN)
  9. Внешние и статические переменные, особенности их реализации.
  10. Внутренняя среда организации и ее основные переменные.

Локальными называют любые переменные, объявленные внутри функции. Локальные переменные также называются автоматическими переменными, так как они создаются и разрушаются автоматически.

Работа программы при наличии в ней функций происходит следующим образом. Операторы программы выполняются последовательно до тех пор, пока не встретится оператор вызова функции. При каждом вызове функции текущий адрес программы запоминается в стеке и служит адресом возврата из функции после завершения её работы.

Стеком называется область памяти компьютера, организованная таким образом, что позволяет добавлять и удалять элементы данных, но при этом доступен только последний добавленный элемент.

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

В начале работы функция выделяет память в стеке для запоминания своих локальных переменных. После возврата из функции стековая память удаляется, уничтожая все хранящиеся в ней переменные, что позволяет:

· обеспечить большее, по сравнению с доступной памятью, суммарное пространство, занимаемое всеми локальными переменными;

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

Глобальными называют переменные, объявленные в программе вне функций (в том числе и вне функции main()). Глобальные переменные существуют в течение всего времени работы программы и занимают память независимо от того, используются они или нет.

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

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

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

int a = 55;

int main() {

int a =7; cout<<" a = "<<a<<endl; // a = 7

cout<<" a = "<< :: a<<endl;... // a = 55

}

Следует отметить, что параметры функции являются локальными переменнымидля функции, а переменные, объявленные в функции main(), являются локальными для функции main().

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

// Пример 5.5. Написать программу для вычисления количества цифр

// в заданном числе num с использованием глобальных переменных.

#include <iostream>

using namespace std;

void kolCifr(); // прототип функции kolCifr()

int k = 0; // глобальная переменная k

long num; // глобальная переменная num

int main() {

cout<<"Enter num: "; cin>>num;

cout<<"num = "<<num<<endl;

kolCifr (); // вызов функции kolCifr()

cout<<" kol_cifr = "<<k<<endl;

system("pause");

}

void kolCifr (){

while(num){

k++; num = num / 10;

}

}




Дата добавления: 2015-02-16; просмотров: 82 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав