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

Основни разлики между локална променлива и глобална променлива

  • Локалната променлива се декларира вътре във функция, докато глобалната променлива се декларира извън функцията.
  • Локалните променливи се създават, когато функцията започне да се изпълнява и се губят, когато функцията приключи, от друга страна, глобалната променлива се създава, когато изпълнението започне и се губи, когато програмата приключи.
  • Локалната променлива не осигурява споделяне на данни, докато глобалната променлива осигурява споделяне на данни.
  • Локалните променливи се съхраняват в стека, докато глобалната променлива се съхранява на фиксирано място, определено от компилатора.
  • Предаването на параметри се изисква за локални променливи, докато не е необходимо за глобална променлива

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

Какво е променлива?

Променливата е име, присвоено на област за съхранение, която програмата може да манипулира. Типът променлива определя размера и разположението на паметта на променливата.

Той също така определя обхвата от стойности, които трябва да се съхраняват в тази памет, и естеството на операциите, които могат да бъдат приложени към тази променлива.

Обхват на променливите

Обхватът на променливата е просто животът на променливата. Това е блок от код, под който дадена променлива е приложима или жива. Например:

function foo(){
var x;
}

Вие декларирате променлива „x“ във функция „foo“. Обхватът на тази променлива остава вътре в тази функция и не може да се използва извън тази функция.
Има три места, където променливите можете да декларирате език за програмиране на променливи:

  • Вътре във функция или блок: Локални променливи
  • Извън всички функции: Глобални променливи
  • В дефиницията на функционални параметри: Формални параметри

Локална променлива

Локална променлива се дефинира като тип променлива, декларирана в програмен блок или подпрограми. Може да се използва само вътре в подпрограмата или кодовия блок, в който е деклариран. Локалната променлива съществува, докато блокът на функцията е в процес на изпълнение. След това ще бъде унищожен автоматично.

Пример за локална променлива

public int add(){
int a =4;
int b=5;
return a+b;
}

Тук 'a' и 'b' са локални променливи

Глобална променлива

A Глобална променлива в програмата е променлива, дефинирана извън подпрограмата или функцията. Има глобален обхват, което означава, че запазва стойността си през целия живот на програмата. Следователно, той може да бъде достъпен в цялата програма от всяка функция, дефинирана в програмата, освен ако не е засенчена.

Пример:

int a =4;
int b=5;
public int add(){
return a+b;
}

Тук 'a' и 'b' са глобални променливи.

Локална променлива срещу глобални променливи

Ето някои основни разлики между локалните и глобалните променливи.

Параметър местен В световен мащаб
Обхват Декларира се във функция. Декларира се извън функцията.
Стойност Ако не се инициализира, се съхранява стойност за боклук Ако не е инициализирано, нулата се съхранява по подразбиране.
Човешки живот Създава се, когато функцията започне да се изпълнява, и се губи, когато функциите прекратят работа. Създава се преди да започне глобалното изпълнение на програмата и се губи, когато програмата приключи.
Споделяне на данни Споделянето на данни не е възможно, тъй като данните от локалната променлива могат да бъдат достъпни само от една функция. Споделянето на данни е възможно, тъй като множество функции имат достъп до една и съща глобална променлива.
параметри Предаването на параметри е необходимо за локални променливи за достъп до стойността в друга функция Предаването на параметри не е необходимо за глобална променлива, тъй като е видимо в цялата програма
Промяна на стойността на променливата Когато стойността на локалната променлива се промени в една функция, промените не се виждат в друга функция. Когато стойността на глобалната променлива се промени в една функция, промените са видими в останалата част от програмата.
Достъп от Локалните променливи могат да бъдат достъпни с помощта на изрази във функция, в която са декларирани. Можете да получите достъп до глобалните променливи чрез всеки оператор в програмата.
Съхранение на паметта Съхранява се в стека, освен ако не е посочено. Той се съхранява на фиксирано място, определено от компилатора.

Предимства от използването на глобални променливи

  • Можете да получите достъп до глобалната променлива от всички функции или модули в програмата
  • Трябва само да декларирате глобална променлива един път извън модулите.
  • Идеално се използва за съхраняване на „константи“, тъй като ви помага да запазите последователността.
  • Глобалната променлива е полезна, когато множество функции имат достъп до едни и същи данни.

Предимства на използването на локални променливи

  • Използването на локални променливи предлага гаранция, че стойностите на променливите ще останат непокътнати, докато задачата се изпълнява
  • Ако няколко задачи променят една променлива, която се изпълнява едновременно, тогава резултатът може да е непредвидим. Но декларирането му като локална променлива решава този проблем, тъй като всяка задача ще създаде свой собствен екземпляр на локалната променлива.
  • Можете да дадете на локалните променливи едно и също име в различни функции, защото те се разпознават само от функцията, в която са декларирани.
  • Локалните променливи се изтриват веднага щом някоя функция приключи и се освобождава пространството в паметта, което заема.

Недостатъци на използването на глобални променливи

  • Твърде много променливи са декларирани като глобални, след което те остават в паметта до завършване на изпълнението на програмата. Това може да причини проблем с липсата на памет.
  • Данните могат да се променят от всяка функция. Всеки израз, написан в програмата, може да промени стойността на глобалната променлива. Това може да доведе до непредвидими резултати в среда с множество задачи.
  • Ако глобалните променливи са преустановени поради рефакторинг на кода, ще трябва да промените всички модули, където се извикват.

Недостатъци на използването на локални променливи

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

Какво е по-полезно?

Локалната и глобалната променлива са еднакво важни при писане на програма на всеки език. Въпреки това, голям брой от глобалната променлива може да заемат огромна памет. Нежелана промяна в глобалните променливи става трудна за идентифициране. Поради това е препоръчително да избягвате декларирането на нежелани глобални променливи.