Препоръчано, 2024

Избор На Редактора

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

Както споменахме по-рано, променлива е име, дадено на място в паметта и то трябва да бъде декларирано преди да бъде използвано. В C всички променливи се декларират при стартиране на програмата. В C ++ променливите могат да бъдат декларирани във всеки един момент, преди да бъдат използвани в инструкциите.

Променливите се класифицират в „локална“ и „глобална“ променлива, което е основната тема на нашето обсъждане. Тук основната разлика между локалната и глобалната променлива е, че локалната променлива се декларира във функционален блок, където като глобална променлива се обявява извън функциите в програмата.

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

Сравнителна таблица:

Основа за сравнениеЛокална променливаГлобална променлива
декларацияПроменливите се декларират във функция.Променливите се обявяват извън всяка функция.
ОбхватВ рамките на функция, в която те са декларирани.По време на програмата.
достъпДостъп до тях имат само изявленията, в рамките на функция, в която са декларирани.Достъпва се от всяко изявление в цялата програма.
животСъздаден, когато функционалният блок е въведен и унищожен при излизане.Останете съществуващи през цялото време, докато програмата ви се изпълнява.
съхранениеЛокалните променливи се съхраняват в стека, освен ако не са посочени.Съхранява се на определено място, определено от компилатор.

Дефиниция на локална променлива

Локална променлива винаги се декларира във функционален блок. В C локална променлива се декларира в началото на кодов блок. В C ++ те могат да бъдат декларирани навсякъде в блоковия код преди тяхното използване. Локалните променливи могат да бъдат достъпни само от изразите, написани в рамките на функция, в която е обявена локалната променлива. Те са сигурни в смисъл, че не могат да бъдат достигнати от друга функция на една и съща програма.

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

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

Забележка:
Въпреки това, има начин да се запази стойността на локална променлива, като се използва "статичния" модификатор.

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

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

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

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

Ключова разлика между локалната и глобалната променлива.

  1. Локалните променливи се наричат ​​"локални", защото те са известни само на изреченията, написани във функция, в която те са декларирани и не са известни на друга функция, присъстваща извън този функционален блок. В случай на глобална променлива те са известни на всяка функция, присъстваща в програмата; следователно те се наричат ​​„глобални“.
  2. Глобалните променливи запазват стойността си, докато програмата е в етап на изпълнение, тъй като те се съхраняват на определено място, определено от компилатора. Локалните променливи се съхраняват в стека; следователно, те не запазват стойността си като "стек" е динамичен характер, но компилаторът може да бъде насочен да запази стойността си, като използва "статичния" модификатор.
  3. Ако глобалната и локалната променлива са декларирани с едно и също име, всички изрази на кодов блок, в който е декларирана локална променлива, ще се отнасят само за локална променлива и няма да предизвикат ефект върху глобалната променлива.
  4. Локална променлива се унищожава, когато контролът на изхода на програмата излезе от блока, в който е обявена локалната променлива. Въпреки това, глобалната променлива се унищожава, когато цялата програма бъде прекратена.

Заключение:

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

Top