close

Lokal variabel

Gå til navigation Gå til søg

En lokal variabel er i datalogi den variabel , der får et lokalt omfang . Sådanne variabler kan kun tilgås fra den funktion eller sætningsblok, hvori de er erklæret . Lokale variable er i modsætning til globale variabler .

I de fleste programmeringssprog er lokale variabler automatiske variabler , der er gemt direkte på opkaldsstakken . Dette betyder, at når en rekursiv funktion kalder sig selv, gives lokale variabler i hver forekomst af funktionen separat hukommelsesadresserum . På denne måde kan variabler med dette omfang deklareres, omskrives og læses uden risiko for bivirkninger for processer uden for den blok, hvor de er deklareret.

Programmeringssprog, der gør brug af call-by-value semantik, giver en kaldt subrutine med sin egen lokale kopi af de beståede argumenter . På de fleste sprog behandles disse lokale parametre på samme måde som andre lokale variabler i subrutinen. På den anden side tillader call-by-reference og call-by-name semantikken , at parametre fungerer som aliaser for de argumenter, der sendes, hvilket tillader subrutinen at ændre variabler uden for deres omfang.

Nogle eksperter går ind for at begrænse brugen af ​​lokale variabler for at undgå bivirkninger i resten af ​​softwaren forårsaget af en ændring i et bestemt modul.

Statiske lokale variabler

Statiske lokale variabler er en speciel type lokal variabel, der er tilgængelig i mange af de mest udbredte programmeringssprog, inklusive C / C++ , Visual Basic og VB.NET , som gør det muligt at bevare værdien af ​​variablen indtil næste funktionskald. . I dette tilfælde har rekursive kald til funktionen også adgang til variablen. På alle de nævnte sprog erklæres variabler som sådanne ved hjælp af nøgleordet storage class (f.eks static. ).

Statiske lokale variabler i globale funktioner kan betragtes som globale variable, da deres værdi forbliver i hukommelsen i hele programmets levetid . [ 1 ]​ Den eneste forskel er, at de kun kan tilgås fra en enkelt funktion. Statiske lokale variabler kan også erklæres i funktioner på klasseniveau i objektorienterede programmeringssprog .

Mere strenge og formelle objektorienterede sprog, såsom Java og C# , tillader ikke erklæringen af ​​statiske lokale variabler i en funktion. På disse sprog er "statiske" variabler begrænset til klassens omfang.

Bemærk: Udtrykket statichar en anden betydning på andre sprog.

Perl

Perl har betegnelsen localfor at "lokalisere" variabler, men i dette tilfælde localhar det en anden implikation. [ 2 ]​ Giver en midlertidig værdi til en global variabel (pakke), som forbliver indtil slutningen af ​​den omsluttende blok. Variablen er dog synlig for enhver funktion i blokken. [ 3 ]

For at skabe leksikalske variabler, der ligner de automatiske variabler, der allerede er nævnt, bruges operatoren my. [ 4 ]

Referencer