Čo je premenná?

Muž

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 PC

Počí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.



    Celé čísla(podpísané aj nepodpísané) s veľkosťou 1, 2, 4 alebo 8 bajtov. Zvyčajne sa označuje ako ints.Plávajúca bodkaČísla do veľkosti 8 bajtov.bajtov. Tieto sú usporiadané po 4 alebo 8 s (32 alebo 64 bitov) a čítajú sa dovnútra a von z registrov CPU.Textreťazcov s veľkosťou až miliárd bajtov. CPU majú špeciálne inštrukcie na vyhľadávanie cez veľké bloky bajtov v pamäti. To je veľmi praktické pri textových operáciách.

Existuje aj všeobecný typ premennej, ktorý sa často používa v skriptovacích jazykoch.

    Varianta- Toto môže obsahovať akýkoľvek typ, ale je pomalšie na použitie.
Príklad dátových typov
  • 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.

Kde sú uložené premenné?

V pamäti, ale rôznymi spôsobmi, v závislosti od toho, ako sa používajú.



  • 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.

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:



  1. 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.
  2. Použite pláva namiesto štvorhra pokiaľ nepotrebujete presnosť.
  3. Vyhnite sa variantom, pokiaľ to nie je naozaj nevyhnutné. Sú pomalšie.