Шта је променљива?
Променљива је назив додељен простору за складиштење којим програм може да манипулише. Тип променљиве одређује величину и изглед меморије променљиве.
Такође одређује опсег вредности које треба сачувати у тој меморији и природу операција које се могу применити на ту променљиву.
У овом упутству ћете научити
- Обим променљивих
- Дефиниција локалне променљиве
- Дефиниција глобалне променљиве
- Локална променљива насупрот глобалној променљивој
- Предности употребе глобалних променљивих
- Предности употребе локалних променљивих
- Мане употребе глобалних променљивих
- Мане употребе локалних променљивих
- Шта је корисније?
Обим променљивих
Опсег променљиве је једноставно животни век променљиве. То је блок кода под којим је променљива применљива или жива. На пример:
function foo(){var x;}
Декларишете променљиву „к“ унутар функције „фоо“. Опсег те променљиве остаје унутар те функције и не може се користити ван те функције.
Постоје три места на којима променљиве можете прогласити програмским језиком променљивих:
- Унутар функције или блока: Локалне променљиве
- Изван свих функција: Глобалне променљиве
- У дефиницији параметара функције: Формални параметри
КЉУЧНА РАЗЛИКА
- Локална променљива је декларисана унутар функције, док је глобална променљива декларисана изван функције.
- Локалне променљиве се креирају када је функција започела извршавање и губе се када се функција завршава, с друге стране, Глобална променљива се креира када започиње извршење и губи се када се програм завршава.
- Локална променљива не омогућава дељење података, док глобална променљива омогућава дељење података.
- Локалне променљиве се чувају у стеку, док се глобална променљива чува на фиксној локацији коју је одредио компајлер.
- Прослеђивање параметара потребно је за локалне променљиве, док за глобалну променљиву није потребно
Локална променљива
Локална променљива је дефинисана као тип променљиве која је декларисана унутар програмског блока или потпрограма. Може се користити само унутар потпрограма или блока кода у којем је декларисан. Локална променљива постоји док се блок функције не изврши. Након тога ће бити аутоматски уништено.
Пример локалне променљиве
public int add(){int a =4;int b=5;return a+b;}
Овде су „а“ и „б“ локалне променљиве
Глобална променљива
Глобална Вариабле у програму је променљива дефинисана изван потпрограма или функције. Има глобални опсег, што значи да задржава своју вредност током целог живота програма. Дакле, може му се приступити кроз програм помоћу било које функције дефинисане у програму, осим ако није у сенци.
Пример:
int a =4;int b=5;public int add(){return a+b;}
Овде су „а“ и „б“ глобалне променљиве.
Лоцал Вариабле Вс. Глобалне променљиве
Ево неколико основних разлика између локалних и глобалних променљивих.
Параметар | Локално | Глобално |
---|---|---|
Обим | Декларише се унутар функције. | Декларише се изван функције. |
Вредност | Ако није иницијализована, чува се вредност смећа | Ако није иницијализована, нула се чува као подразумевана. |
Животни век | Ствара се када функција започне извршавање и губи се када функције престану. | Ствара се пре почетка глобалног извршавања програма и губи се када се програм завршава. |
Дељење података | Дељење података није могуће, јер подацима локалне променљиве може приступити само једна функција. | Дељење података је могуће јер више функција може приступити истој глобалној променљивој. |
Параметри | Прослеђивање параметара потребно је за локалне променљиве за приступ вредности у другој функцији | Прослеђивање параметара није неопходно за глобалну променљиву, јер је видљиво у целом програму |
Модификација променљиве вредности | Када се вредност локалне променљиве модификује у једној функцији, промене нису видљиве у другој функцији. | Када се вредност глобалне променљиве измени у једној функцији, промене су видљиве у остатку програма. |
Приступио | Локалним променљивим се може приступити помоћу израза, унутар функције у којој су декларисане. | Глобалним променљивим можете приступити било којом наредбом у програму. |
Меморија | Чува се на стеку, осим ако није наведено. | Чува се на фиксној локацији коју је одредио компајлер. |
Предности употребе глобалних променљивих
- Глобалној променљивој можете приступити из свих функција или модула у програму
- Потребно је само једном декларирати глобалну променљиву изван модула.
- Идеално се користи за чување „константи“, јер вам помаже да задржите конзистенцију.
- Глобална променљива је корисна када више функција приступа истим подацима.
Предности употребе локалних променљивих
- Употреба локалних променљивих нуди гаранцију да ће вредности променљивих остати нетакнуте док се задатак изводи
- Ако неколико задатака мења једну променљиву која се извршава истовремено, резултат може бити непредвидљив. Али проглашењем као локалном променљивом решава се овај проблем јер ће сваки задатак створити своју инстанцу локалне променљиве.
- Локалним променљивим можете дати исто име у различитим функцијама, јер их препознаје само функција у којој су декларисане.
- Локалне променљиве се бришу чим се заврши било која функција и ослобађају меморијски простор који заузима.
Мане употребе глобалних променљивих
- Превише променљивих је проглашено глобалним, а затим остају у меморији док се извршавање програма не доврши. То може довести до проблема са недостатком меморије.
- Податке може мењати било која функција. Било која изјава написана у програму може променити вредност глобалне променљиве. То може дати непредвидиве резултате у окружењима са више задатака.
- Ако се глобалне променљиве укину због рефакторирања кода, мораћете да промените све модуле тамо где су позване.
Мане употребе локалних променљивих
- Процес отклањања грешака локалне променљиве прилично је лукав.
- Уобичајени подаци потребни за вишеструко прослеђивање јер дељење података између модула није могуће.
- Имају врло ограничен опсег.
Шта је корисније?
Локална и глобална променљива подједнако су важне током писања програма на било ком језику. Међутим, велики број глобалних променљивих може заузети огромну меморију. Нежељену промену глобалних променљивих постаје тешко идентификовати. Због тога је пожељно избегавати декларисање нежељених глобалних променљивих.