Різниця між місцевою та глобальною змінною

Зміст:

Anonim

Що таке змінна?

Змінна - це ім’я, присвоєне області зберігання, якою програма може маніпулювати. Тип змінної визначає розмір і розміщення пам'яті змінної.

Він також визначає діапазон значень, які потрібно зберігати всередині цієї пам'яті, та характер операцій, які можна застосувати до цієї змінної.

У цьому підручнику ви дізнаєтесь

  • Сфера змінних
  • Визначення локальної змінної
  • Визначення глобальної змінної
  • Місцева змінна проти глобальної змінної
  • Переваги використання глобальних змінних
  • Переваги використання локальних змінних
  • Недоліки використання глобальних змінних
  • Недоліки використання локальних змінних
  • Що корисніше?

Сфера змінних

Сфера дії змінної - це просто час дії змінної. Це блок коду, під яким змінна є застосовною або активною. Наприклад:

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' є глобальними змінними.

Місцева змінна проти Глобальні змінні

Ось деякі фундаментальні відмінності між місцевими та глобальними змінними.

Параметр Місцеві Глобальний
Сфера дії Це оголошено всередині функції. Це оголошено поза функцією.
Значення Якщо воно не ініціалізоване, зберігається значення сміття Якщо він не ініціалізований, нуль зберігається за замовчуванням.
Час життя Він створюється, коли функція починає виконуватися, і втрачається, коли функції припиняються. Він створюється перед початком глобального виконання програми та втрачається після завершення програми.
Обмін даними Спільний доступ до даних неможливий, оскільки доступ до даних локальної змінної може мати лише одна функція. Спільний доступ до даних можливий, оскільки кілька функцій можуть отримати доступ до однієї і тієї ж глобальної змінної.
Параметри Передача параметрів потрібна локальним змінним для доступу до значення в іншій функції Передача параметрів не потрібна для глобальної змінної, оскільки це видно у всій програмі
Модифікація значення змінної Коли значення локальної змінної змінено в одній функції, зміни не видно в іншій функції. Коли значення глобальної змінної змінено в одній функції, зміни видно в іншій частині програми.
Доступ до Доступ до локальних змінних можна отримати за допомогою операторів усередині функції, в якій вони оголошені. Ви можете отримати доступ до глобальних змінних за допомогою будь-якого оператора програми.
Зберігання пам'яті Він зберігається в стеку, якщо не вказано. Він зберігається у фіксованому місці, визначеному компілятором.

Переваги використання глобальних змінних

  • Ви можете отримати доступ до глобальної змінної з усіх функцій або модулів програми
  • Вам потрібно лише оголосити глобальну змінну один раз поза модулями.
  • Він ідеально використовується для зберігання "констант", оскільки допомагає зберегти консистенцію.
  • Глобальна змінна корисна, коли кілька функцій отримують доступ до одних і тих самих даних.

Переваги використання локальних змінних

  • Використання локальних змінних гарантує, що значення змінних залишаться незмінними під час виконання завдання
  • Якщо кілька завдань змінюють одну змінну, яка працює одночасно, результат може бути непередбачуваним. Але оголошення її як локальної змінної вирішує цю проблему, оскільки кожне завдання створить власний екземпляр локальної змінної.
  • Ви можете надати локальним змінним одне і те ж ім'я в різних функціях, оскільки вони розпізнаються лише функцією, в якій вони оголошені.
  • Місцеві змінні видаляються, як тільки закінчується будь-яка функція, і звільняють простір пам'яті, який вона займає.

Недоліки використання глобальних змінних

  • Забагато змінних оголошено глобальними, і вони залишаються в пам'яті до завершення виконання програми. Це може спричинити проблему з відсутністю пам'яті.
  • Дані можуть бути змінені будь-якою функцією. Будь-яке твердження, написане в програмі, може змінити значення глобальної змінної. Це може дати непередбачувані результати в багатозадачному середовищі.
  • Якщо глобальні змінні припинені через рефакторинг коду, вам потрібно буде змінити всі модулі, де вони викликані.

Недоліки використання локальних змінних

  • Процес налагодження локальної змінної досить складний.
  • Загальні дані, необхідні для повторної передачі, оскільки спільний доступ даних між модулями неможливий.
  • Вони мають дуже обмежений обсяг.

Що корисніше?

Місцева та глобальна змінні однаково важливі при написанні програми будь-якою мовою. Однак велика кількість глобальних змінних може займати величезну пам'ять. Небажану зміну глобальних змінних стає важко виявити. Тому доцільно уникати оголошення небажаних глобальних змінних.