Разница между локальной и глобальной переменной

Содержание:

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» - глобальные переменные.

Локальная переменная против. Глобальные переменные

Вот некоторые фундаментальные различия между локальными и глобальными переменными.

Параметр Местный Глобальный
Объем Он объявлен внутри функции. Он объявлен вне функции.
Ценить Если он не инициализирован, сохраняется значение мусора. Если он не инициализирован, по умолчанию сохраняется ноль.
Продолжительность жизни Он создается, когда функция начинает выполнение, и теряется, когда функции завершаются. Он создается до начала глобального выполнения программы и теряется при завершении программы.
Обмен данными Совместное использование данных невозможно, поскольку к данным локальной переменной может получить доступ только одна функция. Совместное использование данных возможно, поскольку несколько функций могут обращаться к одной и той же глобальной переменной.
Параметры Передача параметров требуется для локальных переменных для доступа к значению в другой функции. Передача параметров не требуется для глобальной переменной, так как это видно во всей программе.
Изменение значения переменной Когда значение локальной переменной изменяется в одной функции, изменения не видны в другой функции. Когда значение глобальной переменной изменяется в одной функции, изменения видны в остальной части программы.
Доступен Доступ к локальным переменным можно получить с помощью операторов внутри функции, в которой они объявлены. Вы можете получить доступ к глобальным переменным с помощью любого оператора программы.
Хранение в памяти Если не указано иное, он хранится в стеке. Он хранится в фиксированном месте, определенном компилятором.

Преимущества использования глобальных переменных

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

Преимущества использования локальных переменных

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

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

  • Слишком много переменных, объявленных как глобальные, остаются в памяти до завершения выполнения программы. Это может вызвать проблему нехватки памяти.
  • Данные могут быть изменены любой функцией. Любой оператор, написанный в программе, может изменить значение глобальной переменной. Это может дать непредсказуемые результаты в многозадачных средах.
  • Если глобальные переменные больше не поддерживаются из-за рефакторинга кода, вам нужно будет изменить все модули, в которых они вызываются.

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

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

Что полезнее?

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