Változó (programozás)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. január 27-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .

Az imperatív programozás változója egy  elnevezett vagy más módon címezhető memóriaterület, amelynek címe felhasználható az adatok elérésére . A változóban (vagyis egy adott memóriacímen) található adatokat e változó értékének nevezzük (röviden: a változó egy elnevezett memóriadarab, amelynek meghatározott típusa van).

Más programozási paradigmákban , például a funkcionális és logikai programozásban , a változó fogalma némileg eltérőnek bizonyul. Az ilyen nyelvekben a változót névként határozzák meg , amelyhez egy érték társítható , vagy akár az érték tárolási helyeként.

Egyes nyelveken a változó hatókörét és/vagy élettartamát a tárolási osztály adja meg .

Osztályozás

Változók statikus és dinamikus beírása

Ha az adattípust fordítási időben határozzák meg , statikus gépelés történik , ha pedig futásidőben, akkor dinamikus gépelés . Utóbbi esetben néha azt mondják, hogy a változónak nincs típusa, bár a benne lévő adatok bizonyosan egy adott adattípushoz tartoznak , de ez már a program végrehajtása során tisztázódik.

A legtöbb esetben a statikus gépelés csökkenti a programvégrehajtás többletköltségét, mivel a dinamikus gépelés többráfordítást igényel az adattípusok kitalálásával és a vegyes típusú kifejezésekbe öntéssel. A statikus gépelés lehetővé teszi a típusok ellenőrzését a program összeállításának szakaszában. Ezenkívül megkönnyíti a hibák észlelését a fejlesztési szakaszban, amikor a javításuk olcsóbb.

Sok esetben azonban szükség van dinamikus gépelésre. Például a kompatibilitás fenntartásának szükségessége új adatábrázolási formátumra való áttéréskor (például a projekt régi része karakterláncként küldi el a dátumot az eljárásnak, az új objektumok pedig modernebb numerikus típust használnak).

Statikus és dinamikus változók

Egy megnevezett memóriahely címe is meghatározható fordítási és futási időben egyaránt. A változók létrehozásuk időpontjában statikusak vagy dinamikusak lehetnek . Az előbbiek a program vagy szubrutin indításakor, az utóbbiak pedig a program végrehajtása során jönnek létre.

Dinamikus címzésre csak akkor van szükség, ha a tárolandó adatok mennyisége nem pontosan ismert előre. Az ilyen adatok speciális dinamikus struktúrákba kerülnek, amelyek típusát a feladat sajátosságainak és a kiválasztott programozási rendszer képességeinek megfelelően választják ki. Lehet verem , kupac , várólista stb. Még egy fájl is dinamikus struktúra abban az értelemben, ahogyan N. Wirth Pascal -ba helyezte el.

Lokális és globális változók. Hatókör

Hatókör szerint megkülönböztetünk helyi és globális változókat. Az előbbiek csak egy adott szubrutin számára érhetők el, az utóbbiak a teljes program számára. A moduláris és objektumprogramozás elterjedésével megosztott változók is megjelentek (az alprogram-hierarchia bizonyos szintjein elérhetők). A hatókört néha a tárolási osztály adja meg . A láthatóság korlátozható névterek bevezetésével .

A láthatósági korlátozást egyrészt arra találták ki, hogy ugyanazokat a változóneveket lehessen használni (ami ésszerű, ha a változók különböző alprogramokban hasonló funkciót töltenek be), másrészt a változók illegális használatával összefüggő hibák elleni védelem érdekében (ehhez azonban a programozónak kötelező birtokolni és a megfelelő logikát használni az adatok strukturálásakor).

Egyszerű és összetett változók

A belső struktúra megléte szerint a változók lehetnek egyszerűek vagy összetettek (összetett).

Az összetett típusok legjellemzőbb példái a tömb (minden elem azonos típusú) és a rekord (az elemek különböző típusúak lehetnek).

Hangsúlyozandó egy ilyen felosztás relativitása: a különböző programok esetében ugyanaz a változó eltérő szerkezetű lehet.

Például a fordító egy valós típusú változóban 4 mezőt különböztet meg: a mantissza és a kitevő jeleit, plusz ezek értékeit, de a programját fordító programozó számára a valós változó egyetlen memóriacella, amely valós számot tárol.

Változó elnevezési konvenciók

Lásd még

Jegyzetek

Linkek