Rodyklė prieš masyvą
Žymeklis yra duomenų tipas, kuriame yra nuoroda į atminties vietą (ty rodyklės kintamasis saugo atminties vietos, kurioje saugomi kai kurie duomenys, adresą). Masyvai yra dažniausiai naudojama duomenų struktūra elementų rinkiniui saugoti. Daugumoje programavimo kalbų pateikiami metodai, kaip lengvai deklaruoti masyvus ir prieigos elementus masyvuose.
Kas yra žymeklis?
Žymeklis yra duomenų tipas, kuriame saugomas atminties vietos, kurioje saugomi kai kurie duomenys, adresas. Kitaip tariant, žymeklis turi nuorodą į atminties vietą. Prieiga prie duomenų, saugomų atminties vietoje, į kurią nukreipia rodyklė, vadinama nukrypimu. Atliekant pasikartojančias operacijas, tokias kaip medžių / stygų važiavimas, lentelių paieška ir kt., Rodyklių naudojimas pagerintų našumą. Taip yra todėl, kad rodyklių rodymas ir nukopijavimas yra pigesnis nei faktinis rodyklių nurodytų duomenų kopijavimas ir prieigos prie jų. Nulinis rodyklė yra rodyklė, kuri nieko nerodo. „Java“prieiga prie nulinio rodyklės sukurtų išimtį, vadinamą „NullPointerException“.
Kas yra masyvas?
Parodytas 1 paveiksle, yra kodo dalis, paprastai naudojama masyvui deklaruoti ir priskirti reikšmes. 2 paveiksle pavaizduota, kaip masyvas atrodytų atmintyje.
reikšmės [0] = 100; reikšmės [1] = 101; reikšmės [2] = 102; reikšmės [3] = 103; reikšmės [4] = 104; |
1 paveikslas: Masyvo reikšmių deklaravimo ir priskyrimo kodas
100 | 101 | 102 | 103 | 104 |
Indeksas: 0 | 1 | 2 | 3 | 4 |
2 paveikslas: atmintyje saugomas masyvas
Virš kodas apibrėžia masyvą, kuriame gali būti saugomi 5 sveikieji skaičiai, ir jie pasiekiami naudojant indeksus nuo 0 iki 4. Viena svarbi masyvo savybė yra ta, kad visas masyvas paskirstomas kaip vienas atminties blokas ir kiekvienas elementas gauna savo vietą masyve. Apibrėžus masyvą, jo dydis yra fiksuotas. Taigi, jei nesate tikras dėl masyvo dydžio kompiliavimo metu, turėtumėte apibrėžti pakankamai didelį masyvą, kad jis būtų saugus. Tačiau dažniausiai mes iš tikrųjų naudosime mažiau elementų nei skyrėme. Taigi nemažai atminties iš tikrųjų švaistoma. Kita vertus, jei „pakankamai didelis masyvas“iš tikrųjų nėra pakankamai didelis, programa sugenda.
Kuo skiriasi rodyklės ir masyvai?
Žymeklis yra duomenų tipas, kuriame saugomas atminties vietos, kurioje saugomi kai kurie duomenys, adresas, o masyvai yra dažniausiai naudojama duomenų struktūra elementų rinkiniui saugoti. C programavimo kalboje masyvo indeksavimas atliekamas naudojant rodyklės aritmetiką (ty i-asis masyvo x elementas būtų lygiavertis * (x + i)). Todėl C rodyklių rinkinys, kuris nurodo atminties vietų, kurios eina iš eilės, rinkinį, gali būti laikomas masyvu. Be to, yra skirtumas, kaip operatoriaus dydis veikia žymikliais ir masyvais. Taikant masyvą, operatoriaus dydis grąžins visą masyvo dydį, o pritaikytas žymekliui - tik rodyklės dydį.