Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Rodyklės

Iš Pipedijos - durniausios enciklopedijos.
(Nukreipta iš Pointeriai)
Jump to navigation Jump to search

Rodyklės arba pointeriai - toksai programuotojų siaubas, nors išties tai visiškai elementarus dalykas, kuris veikia kaip nuoroda į kokį nors daiktą, esantį operacinėje atmintyje. Panašiu būdu veikia ir kai kuriose kalbose esančios nuorodos, kurios atstoja rodykles.

Norint gerai susigaudyti rodyklėse, būtina bent šiokia tokia patirtis, programuojant asembleriu, nes tenai viskas yra arba rodyklės arba duomenys, tai labai greitai priverčia arba suprasti, arba mesti tą programavimo užsiėmimą.

Norint suprasti, kaip tai veikia, įsivaizduokit, kad visa kompiuterio operacinė atmintis - tai vienas didelis langelių masyvas, kur kiekvienas langelis - tai baitas atminties. Toksai langelis vadinams duomenų ląstele. Kiekviena ląstelė eina iš eilės, nuosekliai po kitos ląstelės, tokia eile, kurioje visos tos ląstelės-langeliai turi adresus.

Tai va, kai yra koks nors duomuo toje ląstelėje, pvz., kažkoksai tai skaičius, tai klausimas, kaip tą skaičių sužinoti? O atsakymas toksai, kad reikia žinoti tos ląstelės adresą, t.y., eilės numerį. Tai jei žinai tą eilės numerį, tai gali kreiptis į ląstelę ir perskaityti joje esančius duomenis ar atvirkščiai - juos tenai įrašyti.

Tai vat dabar paprasta ląstelė - tai tiesiog kintamasis. Bet jei tas kintamasis turi kitos ląstelės adresą - tai reiškia, kad čia jau ne šiaip kintamasis, o rodyklė į kitą ląstelę, nes tame kintamąjame yra tos kitos ląstelės adresas. Tai vat paprastai tokie kintamieji ir yra vadinami rodyklėmis. Žodis "rodyklė" yra tiesiogiai vertimas iš anglų kalbos žodžio "pointeris", tai programuotojų tarpe abu pavadinimai panašiai paplitę.

Norint susigaudyti tose rodyklėse, pradžioje reikia įdėti šiokio tokio vargo, nes gali būti, pvz., kad kokia tai rodyklė rodo ne į šiaip duomenis, o į kokią tai kitą rodyklę, kuri rodo į dar kitą rodyklę, kuri jau rodo į kokius tai duomenis, o gal ir į dar kažką.

Tai kai kuriose kalbose rodyklės būna labai nuabstrahuojamos, nes jos visus užpisa. Tai pvz., todėl kokia nors Java, PHP ar JavaScript rodyklių neturi išvis, o pvz., kur nors Pascal, Ada ar Modula kalbose rodyklės naudojamos labai ribotai. Kitais gi atvejais rodyklės būna naudojamos be saiko, kaip pvz., C kalboje.