Локальна змінна

Матеріал з Словник з інформатики
Перейти до: навігація, пошук

Локальними є змінні, які визначаються всередині процедури або функції. Вони мають доступ тільки в середині цієї процедури. «Локальні змінні» – це такі зміни які мають свої області видимості, цими областями вважаються функції, в яких внесені змінні. Отже, в окремих функціях можна використовувати змінні з однаковими іменами, що є зручно. Локальні змінні відповідають одному з головних правил програмування, а саме - принципом найменших привілеїв. Тобто, змінні, оголошені всередині однієї функції, мають бути доступні тільки для цієї функції і нічого іншого, тому що, вони створювалися саме для цієї функції. Змінні - це одна з найважливіших складових кожної мови програмування. Вони є подібними на невеликий контейнер з певним вмістом, наприклад символами або числами. Цьому контейнеру привласнюється ім'я, тобто ім'я змінної. Щоб послатися на вміст, вистачить вказати ім'я змінної. Така інформація про змінних - всього лише вершина айсберга, оскільки про них можна говорити дуже багато. Локальну змінну можна використати тільки у середині блока, в якому вона внесена. «Локальна змінна» є невидимою за межами свого блоку. (Блок програми — це описи та інструкції, об'єднані в одну систему шляхом взяття їх у фігурні дужки). «Локальні змінні» можливі тільки в момент виконання програмного блоку, в якому вони наведені, вони створюються лише при вході у блок, а знищуються — при виході з блоку. Окрім того, змінна, оглошена в одному блоці, абсолютно не має відношення до змінної з тим же ім'ям, внесеної в інакшому блоці. Оголошення змінних всередині блоку програми допомагає уникнути небажаних побічних ефектів. Змінна не існує поза блоком, в який вона внесена, тому "стороння" ділянка програми не зможе випадково змінити її значення. Тому локальні змінні створюються і знищуються при кожному вході і виході з блоку, їх значення втрачається кожному виході з блоку. Враховувати це потрібно при виклику функції. Це пояснюється тим, що локальна змінна не зберігає своє значення в період між викликами (проте можна дати вказівку компілятору зберегти значення локальної змінної, для цього необхідно оголосити її з модифікатором STATIC). За умовчанням локальні змінні зберігаються в стеку. Стік — область пам'яті, що змінюється динамічним способом. В загальному випадку локальні змінні не зберігають своє значення в період між викликами функцій. Локальні змінні можна ініціалізувати будь-яким заданим значенням. Це значення буде присвоєно змінній кожного разу при вході в той блок програми, в якому вона оголошена. Локальні статичні змінні виявляються корисними при генерації псевдовипадкових чисел, коли при кожному наступному виклику генератора необхідно задавати нове початкове значення. Локальну статичну змінну можна ініціалізувати, задавши її початкове значення під час оголошення. Оскільки змінна є статичної, її початкове значення привласнюється лише один раз, під час оголошення. Імена, описані в заголовку або розділі описів процедури або функції називають «локальними» для цього блоку. Слід зазначити, що формальні параметри процедур і функцій завжди є локальними змінними для відповідних блоків. Основні правила роботи з локальними іменами можна сформулювати так: Локальні імена доступні (вважаються відомими, "видимими") тільки всередині того блоку, де вони описані. Сам цей блок та всі інші, що вкладені в нього, називають «областю видимості» для цих локальних імен. Імена, описані в одному блоці, можуть збігатися з іменами з інших: тих, що утримують даний блок і тих, що вкладені у нього. Це пояснюється тим, що змінні, описані в різних блоках (навіть якщо вони мають однакові імена), зберігаються в різних областях оперативної пам'яті.