Čo je premenná?
Gunnar Svanberg/Iconica/Getty Images
Premenná je názov pre miesto v pamäti počítača, kde ukladáte nejaké dáta.
Predstavte si veľmi veľký sklad s množstvom odkladacích priestorov, stolov, políc, špeciálnych miestností atď. To všetko sú miesta, kde môžete niečo uložiť. Predstavme si, že máme v sklade prepravku piva. Kde presne sa nachádza?
Nepovedali by sme, že je uložená 31' 2' od západnej steny a 27' 8' od severnej steny. In programovanie Tiež by sme nepovedali, že moja celková mzda vyplatená v tomto roku je uložená v štyroch bajtoch počnúc miestom 123 476 542 732 v RAM.
Dáta v PCPočítač umiestni premenné na rôzne miesta pri každom spustení nášho programu. Náš program však presne vie, kde sa údaje nachádzajú. Urobíme to tak, že vytvoríme premennú, na ktorú sa bude odkazovať, a potom necháme kompilátor zvládnuť všetky chaotické detaily o tom, kde sa v skutočnosti nachádza. Oveľa dôležitejšie je pre nás vedieť, aký typ údajov budeme v lokalite ukladať.
V našom sklade môže byť naša prepravka v sekcii 5 police 3 v oblasti nápojov. V PC bude program presne vedieť, kde sa nachádzajú jeho premenné.
Premenné sú dočasné
Existujú tak dlho, kým sú potrebné, a potom sa likvidujú. Ďalšou analógiou je, že premenné sú ako čísla v kalkulačke. Hneď ako stlačíte tlačidlo vymazať alebo vypnúť, čísla na displeji sa stratia.
Aká veľká je premenná
Tak veľké, ako je potrebné, a nič viac. Najmenšia premenná môže byť jeden bit a najväčšia má milióny bajtov. Súčasné procesory spracovávajú dáta v kusoch 4 alebo 8 bajtov naraz (32 a 64 bitové CPU), takže čím väčšia je premenná, tým dlhšie bude trvať jej čítanie alebo zápis. Veľkosť premennej závisí od jej typu.
Čo je typ premennej?
V modernom programovacie jazyky , premenné sú deklarované ako typu.
Okrem čísel CPU nerobí žiadne rozdiely medzi údajmi vo svojej pamäti. Zaobchádza s ním ako so zbierkou bajtov. Moderné procesory (okrem procesorov v mobilných telefónoch) zvyčajne hardvérovo zvládajú aritmetiku s celými číslami aj s pohyblivou rádovou čiarkou. The kompilátor musí generovať rôzne inštrukcie strojového kódu pre každý typ, takže znalosť typu premennej mu pomáha generovať optimálny kód.
Aké typy údajov môže premenná obsahovať?Základné typy sú tieto štyri.
- Pole typov – jednorozmerné ako zásuvky v skrini, dvojrozmerné ako poštové triediace boxy alebo trojrozmerné ako hromada prepraviek od piva. Môže existovať ľubovoľný počet dimenzií až do limitov kompilátora.
- Enumy, ktoré sú obmedzenou podmnožinou celých čísel. Čítať o čo je enum je .
- Štruktúry sú zložená premenná, kde je niekoľko premenných sústredených do jednej veľkej premennej.
- Prúdy poskytujú spôsob, ako spravovať súbory. Sú formou a reťazec .
- Objekty , sú ako štruktúry, ale s oveľa sofistikovanejším spracovaním údajov.
- Globálne. Všetky časti programu môžu pristupovať a meniť hodnotu. Staršie jazyky ako Basic a Fortran takto narábali s údajmi a nepovažuje sa to za dobrú vec. Moderné jazyky majú tendenciu odrádzať od globálneho ukladania, hoci je to stále možné.
- Na halde. Toto je názov pre hlavnú používanú oblasť. V C a C++ je k tomu prístup cez ukazovateľ premenných.
- Na Stoh . Zásobník je blok pamäte, ktorý sa používa na ukladanie parametre odovzdané do funkcií a premenných, ktoré existujú lokálne pre funkcie.
- Pokiaľ nie ste tesní na ram alebo nemáte veľké polia , držať sa ints skôr ako a byte (8 bitov) resp krátky int (16 bitov). Najmä na 32-bitových CPU existuje dodatočná penalizácia za oneskorenie pri prístupe na menej ako 32 bitov.
- Použite pláva namiesto štvorhra pokiaľ nepotrebujete presnosť.
- Vyhnite sa variantom, pokiaľ to nie je naozaj nevyhnutné. Sú pomalšie.
Existuje aj všeobecný typ premennej, ktorý sa často používa v skriptovacích jazykoch.
Kde sú uložené premenné?
V pamäti, ale rôznymi spôsobmi, v závislosti od toho, ako sa používajú.
Záver
Premenné sú nevyhnutné pre procedurálne programovanie, ale je dôležité, aby ste sa príliš nezaoberali základnou implementáciou, pokiaľ neprogramujete systémy alebo nepíšete aplikácie, ktoré musia bežať v malom množstve pamäte RAM.
Naše pravidlá týkajúce sa premenných: