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

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 18 Октомври 2024
Anonim
Что такое Секола Пенггерак?
Видео: Что такое Секола Пенггерак?

Съдържание


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

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

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

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. Предимства
  5. Недостатъци
  6. заключение

Сравнителна диаграма:

ОСНОВА ЗА СРАВНЕНИЕ МЕСТНА ПРОМЯНА ГЛОБАЛЕН ВАРИАБЛЕН
декларация Променливите се декларират вътре във функция.
Променливите се декларират извън която и да е функция.
Обхват
В рамките на функция, вътре в която са декларирани.През цялата програма.
стойност
Неинициализираната локална променлива води до съхранение на стойността на боклука.Неинициализираната глобална променлива съхранява нула по подразбиране.
достъп Достъп се само от операторите, във функция, в която те са декларирани. Достъп до всяко изявление в цялата програма.
Споделяне на данниНе се предоставяУлеснена
животСъздаден, когато функционалният блок е въведен и унищожен при изход. Останете за цялото време, когато програмата ви се изпълнява.
съхранение
Локалните променливи се съхраняват в стека, освен ако не е посочено.
Съхранява се на фиксирано място, решено от компилатор.
Минаване на параметърНеобходимо е задължителноНе се изисква за глобални променливи.
Промени в променлива стойностВсяка промяна, подразбираща се в локална променлива, не засяга останалите функции на програмата.Промените, приложени в глобалната променлива на функция, отразяват промените в цялата програма.

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

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


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

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

Забележка:
Съществува обаче начин да се запази стойността на локална променлива с помощта на „статичен“ модификатор.

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

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


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

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

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

Предимства

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

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

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

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

Недостатъци

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

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

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

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

Заключение:

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