Що таке змінна?
Змінна - це ім’я, присвоєне області зберігання, якою програма може маніпулювати. Тип змінної визначає розмір і розміщення пам'яті змінної.
Він також визначає діапазон значень, які потрібно зберігати всередині цієї пам'яті, та характер операцій, які можна застосувати до цієї змінної.
У цьому підручнику ви дізнаєтесь
- Сфера змінних
- Визначення локальної змінної
- Визначення глобальної змінної
- Місцева змінна проти глобальної змінної
- Переваги використання глобальних змінних
- Переваги використання локальних змінних
- Недоліки використання глобальних змінних
- Недоліки використання локальних змінних
- Що корисніше?
Сфера змінних
Сфера дії змінної - це просто час дії змінної. Це блок коду, під яким змінна є застосовною або активною. Наприклад:
function foo(){var x;}
Ви оголошуєте змінну "x" усередині функції "foo". Область дії цієї змінної залишається всередині цієї функції, і її не можна використовувати поза цією функцією.
Є три місця, де змінні можна оголосити мовою програмування змінних:
- Усередині функції або блоку: Локальні змінні
- Поза усіма функціями: Глобальні змінні
- У визначенні параметрів функції: Формальні параметри
КЛЮЧОВА РІЗНИЦЯ
- Локальна змінна оголошується всередині функції, тоді як глобальна змінна оголошується поза функцією.
- Локальні змінні створюються, коли функція починає виконуватися, і втрачається, коли функція завершується, з іншого боку, Глобальна змінна створюється під час запуску і втрачається, коли програма закінчується.
- Місцева змінна не забезпечує обмін даними, тоді як глобальна змінна забезпечує обмін даними.
- Локальні змінні зберігаються у стеку, тоді як глобальна змінна зберігається у фіксованому місці, визначеному компілятором.
- Передача параметрів необхідна для локальних змінних, тоді як для глобальної змінної не потрібна
Місцева змінна
Локальна змінна визначається як тип змінної, оголошений в блоці програмування або підпрограмах. Його можна використовувати лише всередині підпрограми або блоку коду, в якому він оголошений. Локальна змінна існує доти, поки блок функції не буде виконаний. Після цього він буде знищений автоматично.
Приклад локальної змінної
public int add(){int a =4;int b=5;return a+b;}
Тут 'a' та 'b' є локальними змінними
Глобальна змінна
Глобальна змінна в програмі змінна , певна поза підпрограми або функції. Він має глобальний масштаб, що означає, що він зберігає свою цінність протягом усього життя програми. Отже, до нього може отримати доступ по всій програмі будь-яка функція, визначена в програмі, якщо вона не затінена.
Приклад:
int a =4;int b=5;public int add(){return a+b;}
Тут 'a' та 'b' є глобальними змінними.
Місцева змінна проти Глобальні змінні
Ось деякі фундаментальні відмінності між місцевими та глобальними змінними.
Параметр | Місцеві | Глобальний |
---|---|---|
Сфера дії | Це оголошено всередині функції. | Це оголошено поза функцією. |
Значення | Якщо воно не ініціалізоване, зберігається значення сміття | Якщо він не ініціалізований, нуль зберігається за замовчуванням. |
Час життя | Він створюється, коли функція починає виконуватися, і втрачається, коли функції припиняються. | Він створюється перед початком глобального виконання програми та втрачається після завершення програми. |
Обмін даними | Спільний доступ до даних неможливий, оскільки доступ до даних локальної змінної може мати лише одна функція. | Спільний доступ до даних можливий, оскільки кілька функцій можуть отримати доступ до однієї і тієї ж глобальної змінної. |
Параметри | Передача параметрів потрібна локальним змінним для доступу до значення в іншій функції | Передача параметрів не потрібна для глобальної змінної, оскільки це видно у всій програмі |
Модифікація значення змінної | Коли значення локальної змінної змінено в одній функції, зміни не видно в іншій функції. | Коли значення глобальної змінної змінено в одній функції, зміни видно в іншій частині програми. |
Доступ до | Доступ до локальних змінних можна отримати за допомогою операторів усередині функції, в якій вони оголошені. | Ви можете отримати доступ до глобальних змінних за допомогою будь-якого оператора програми. |
Зберігання пам'яті | Він зберігається в стеку, якщо не вказано. | Він зберігається у фіксованому місці, визначеному компілятором. |
Переваги використання глобальних змінних
- Ви можете отримати доступ до глобальної змінної з усіх функцій або модулів програми
- Вам потрібно лише оголосити глобальну змінну один раз поза модулями.
- Він ідеально використовується для зберігання "констант", оскільки допомагає зберегти консистенцію.
- Глобальна змінна корисна, коли кілька функцій отримують доступ до одних і тих самих даних.
Переваги використання локальних змінних
- Використання локальних змінних гарантує, що значення змінних залишаться незмінними під час виконання завдання
- Якщо кілька завдань змінюють одну змінну, яка працює одночасно, результат може бути непередбачуваним. Але оголошення її як локальної змінної вирішує цю проблему, оскільки кожне завдання створить власний екземпляр локальної змінної.
- Ви можете надати локальним змінним одне і те ж ім'я в різних функціях, оскільки вони розпізнаються лише функцією, в якій вони оголошені.
- Місцеві змінні видаляються, як тільки закінчується будь-яка функція, і звільняють простір пам'яті, який вона займає.
Недоліки використання глобальних змінних
- Забагато змінних оголошено глобальними, і вони залишаються в пам'яті до завершення виконання програми. Це може спричинити проблему з відсутністю пам'яті.
- Дані можуть бути змінені будь-якою функцією. Будь-яке твердження, написане в програмі, може змінити значення глобальної змінної. Це може дати непередбачувані результати в багатозадачному середовищі.
- Якщо глобальні змінні припинені через рефакторинг коду, вам потрібно буде змінити всі модулі, де вони викликані.
Недоліки використання локальних змінних
- Процес налагодження локальної змінної досить складний.
- Загальні дані, необхідні для повторної передачі, оскільки спільний доступ даних між модулями неможливий.
- Вони мають дуже обмежений обсяг.
Що корисніше?
Місцева та глобальна змінні однаково важливі при написанні програми будь-якою мовою. Однак велика кількість глобальних змінних може займати величезну пам'ять. Небажану зміну глобальних змінних стає важко виявити. Тому доцільно уникати оголошення небажаних глобальних змінних.