C/C++ nyelvekben egy negatív szám literál esetén a mínusz jel operátor vagy a literál része?
4:
Nem egészen.
A kódban is literál (vagy konstans) a nevük.
"A literál nem más, mint a program szövegében direkt módon beleírt adat."
Hernyák Zoltán
"A literál olyan állandó érték, amely a program kódjába beépül, és azt a továbbiakban (futás közben) nem lehet megváltoztatni. A literálok fajtái: egész, valós, logikai, karakter, szöveg, null"
Angster Erzsébet.
"Magába a programba nem tudod megváltoztatni, de kívülről igen."
Nem ez a lényeg, hanem az, hogy nem szoktuk megváltoztatni. Ezért ez a neve, a literál annyi, mint ami nem változik.
"Ami már a memóriába van az nem literal és nem is annak nevezzük. "
Hanem minek nevezzük? :)
Amikor a kód lefordul, akkor képződik két program fragmentum. Az egyik a kód (CODE), a másik az adat (DATA).
Amikor a kód bekerül a memóriába, akkor read only lesz, tehát csak olvasható, írni nem lehet.
Ha a programban egy int tipusú változót deklarálok, akkor az annyit jelent kódszegmens oldalon, hogy lesz egy memóriacím ahonnan kezdődően érhető el egy érték. Ha a kódomban (forrás) ehhez a változóhoz értéket rendelek (mondjuk legyen 30), akkor ugye a fent említett memóriacímen ott lesz a 30.
De írni nem tudom ezt a kezdőértéket, csak olvasni, pedig hát, kéne. Ezért a kód tartalmazni fogja azt a részt, hogy adott címről az érték (30) átmásolódik a program DATA szegmensébe és ott már nem csak olvasni de írni is lehet.
Viszont a CODE szegmensbe soha többé nem írhatom vissza a megváltozott értéket. Az marad úgy, ahogy volt, mert (elvileg) érinthetetlen. Hát ezért literál a 30, mert soha nem változik meg a program futása során. A hanyagabb mérnökök emiatt nevezik konstansnak. Pedig a kettő nem ugyanaz, de ez már egy másik történet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!