Rodyklė vs masyvas
Rodyklė yra duomenų rūšis, turinti nuorodą į atminties vietą (t. Y. Rodyklės kintamasis saugo atminties vietos, kurioje saugomi kai kurie duomenys, adresą). Masyvai yra dažniausiai naudojama duomenų struktūra elementų kolekcijai saugoti. Daugelyje programavimo kalbų pateikiami būdai, kaip lengvai deklaruoti masyvus ir prieigos elementus masyvuose.
Kas yra rodyklė?
Rodyklė yra duomenų rūšis, kurioje saugomas atminties vietos, kurioje saugomi kai kurie duomenys, adresas. Kitaip tariant, rodyklė nurodo nuorodą į atminties vietą. Prieiga prie duomenų, saugomų atminties vietoje, į kurią nurodo rodyklė, vadinama dereferencija. Atliekant pasikartojančias operacijas, pavyzdžiui, einant medžius / stygas, ieškant lentelių ir pan., Rodyklių naudojimas pagerintų našumą. Taip yra todėl, kad nuorodų atskyrimas ir kopijavimas yra pigesnis nei iš tikrųjų kopijavimas ir prieiga prie rodyklių nurodytų duomenų. Nulinis rodyklė yra rodyklė, kuri nieko nenurodo. „Java“ programoje prieiga prie nulinio žymeklio sugeneruotų išimtį, vadinamą „NullPointerException“.
Kas yra masyvas?
Parodytas 1 paveiksle, yra kodo dalis, paprastai naudojama masyvo reikšmėms deklaruoti ir priskirti. 2 paveiksle pavaizduota, kaip masyvas atrodytų atmintyje.
int reikšmės [5]; 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 |
Rodyklė: 0 | 1 | 2 | 3 | 4 |
2 paveikslas: Atmintyje saugomas masyvas
Aukščiau pateiktas kodas apibūdina masyvą, kuriame gali būti saugomi 5 sveikieji skaičiai, ir prie jų prieinama naudojant indeksus nuo 0 iki 4. Viena svarbi masyvo savybė yra tai, kad visas masyvas yra paskirstomas kaip vienas atminties blokas ir kiekvienas elementas užima savo vietą masyve. . Kai masyvas yra apibrėžtas, jo dydis yra fiksuotas. Taigi, jei nesate tikri dėl masyvo dydžio sudarydami, turėtumėte apibrėžti pakankamai didelį masyvą, kad jis būtų saugioje pusėje. Bet dažniausiai iš tikrųjų naudojame mažiau elementų, nei skyrėme. Taigi iš tiesų iššvaistoma nemažai atminties. Kita vertus, jei „pakankamai didelis masyvas“ iš tikrųjų nėra pakankamai didelis, programa sudužtų.
Kuo skiriasi rodyklės ir masyvai?
Rodyklė yra duomenų rūšis, kurioje saugomas atminties vietos, kurioje saugomi kai kurie duomenys, adresas, o masyvai yra dažniausiai naudojama duomenų struktūra elementų kolekcijai saugoti. C programavimo kalboje masyvo indeksavimas atliekamas naudojant rodyklės aritmetiką (t. Y. Masyvo i-asis elementas būtų lygus * (x + i)). Todėl C punkte rodyklių rinkinys, nurodantis iš eilės einančių atminties vietų rinkinį, gali būti laikomas masyvu. Be to, skiriasi operatoriaus dydžio veikimas rodyklėse ir masyvuose. Pritaikius masyvui, operatoriaus dydis grąžins visą masyvo dydį, tuo tarpu, kai jis bus pritaikytas žymikliui, jis grąžins tik rodyklės dydį..