Változó

A Programozás Wiki wikiből

Változónak nevezünk a programozási nyelvekben egy olyan azonosítót (szót), amivel valamilyen adatra, vagy objektumra hivatkozunk.

Az emberi gondolkodás számára általában könnyebb egy probléma vagy feladat kezelése, ha annak összetevőit elnevezheti, és a nevek használatával tehet állításokat, vagy adhat utasításokat bizonyos részeknek (résztvevőknek). A mai programnyelvek zöme ezért lehetővé teszi, hogy a kezelni kívánt rendszer (program) alkotóelemeit elnevezzük.

A legegyszerűbb eset, ha a memóriának egy bizonyos rekeszét, amelyben adatot kívánunk tárolni, és késöbb visszaolvasni, egy szóval hivatkozzuk. A programnyelvben ez a szó változóként fog szerepelni, a memóriarekesz pillanatnyi tartalmát pedig a változó értékének nevezzük.

A változónevekre általában valamilyen könnyen betartható formai követelmény vonatkozik. Gyakran csak az angol ábécé betűit, aláhúzásjelet, és számjegyeket tartalmazhatnak, és általában nem kezdődhetnek számjeggyel. A pontos szabályok programozási nyelvenként változnak.

Sok nyelvben a változók nem csak a tárolás helyét, hanem az adat típusát (egész, lebegőpontos, szöveges) is meghatározzák. Az ilyen nyelveket típusos nyelveknek hívjuk. Általában a használat előtt ezeknél szükség van a változó típusának rögzítésére egy deklarációban.

Fajtái[szerkesztés]

  • Láthatóság szerint
    • Globális: a változó hivatkozható bármely programrészből. Gyakori használata általában nem javasolt, mert túl sok globális változó esetén nehéz átlátni a változók összefüggéseit, az egymástól távol levő programrészek egymásra hatását.
    • Lokális: a változó csak egy alprogramon vagy blokkon belül érvényes, azon kívül nem hivatkozható. Az egymást tartalmazó blokkokban általában megengedett ugyanannak a változónévnek a használata. Ilyenkor csak a belső változó érhető el, "elfedi" a külsőt.
  • Adat típusa szerint
    • Skalár: A változó egy számot, logikai értéket, vagy más egyszerű adatot tartalmaz.
    • Mutató: A mutatók olyan speciális változók, amiknek az értéke egy memóriaterület, vagy egy másik változó címe.
    • Objekum: A változó tartalma a program egyik objektuma, vagy annak címe. Az objektum műveletei és adattagjai a változón keresztül használhatók.
    • Rekord: A változó adattartalma egy rekord. A rekord mezői általában a változó.mezőnév formában hivatkozhatók.
    • Tömb: A változó értéke egy tömb, a tömb egyes elemei egymástól függetlenül használhatók. Ennek leggyakoribb jelölése a <változó>[<index>] forma.
    • Szöveges: A változó értéke egy karaktersorozat. A tároláshoz szükséges memória változhat futás közben, ezért gyakran mutatóval ábrázolják.
  • Élettartam szerint
    • Statikus: a változó a program futása során végig rendelkezésre áll.
    • Automatikus: az alprogramok lokális változói általában ilyenek. Az alprogram hívásakor foglalnak helyet a veremben, majd az alprogram befejezése után már nem lesznek használhatóak. Rekurzív hívásoknál ezért egyszerre több, ugyanannak a változónak megfelelő, de különöbző mélységekhez tartozó adat is lehet a memóriában.
    • Dinamikus: a program futásának csak egy részében hasznáható változó. A használat megkezdését általában jelölni szükséges (new). Élettartamának végét vagy jelölni kell (free,delete), vagy akkor történik, mikor a változó érvényességi körén kívül kerül, vagy egy hulladékgyűjtési folyamat számolja fel.