Prieš aptardami skirtumą tarp rodyklės ir nuorodos, pirmiausia trumpai pažvelkime į šių dviejų terminų prasmę. Programoje duomenys užima atmintį. Norint prieiti prie jų, reikia žinoti tikslią atminties, kurioje duomenys buvo patalpinti vykdymo metu, vietą. Rodyklės kintamieji ir pamatiniai kintamieji yra naudojami šiems duomenims pasiekti ir manipuliuoti atminties adresais, kuriuose jie yra. Tai reiškia, kad tiek rodyklės, tiek nuorodos gali būti naudojamos netiesiogiai nurodyti objektus. Jie iš esmės laiko atminties adresus kaip savo vertybes. pagrindinis skirtumas tarp rodyklės ir nuorodos yra tai rodyklė yra kintamasis, kuris saugo kito kintamojo atminties vietos adresą o a nuoroda yra kintamasis, kuris nurodo kitą kintamąjį. Du mechanizmai, rodyklė ir nuoroda, turi skirtingą sintaksę ir naudojimą.
Rodyklė yra programavimo kalbos objektas, kuriame saugomas vertės atminties adresas kompiuterio atmintyje.
int i = 5;
int * ptr = & i;
Pirmoji eilutė nurodo kintamąjį, kurio reikšmė yra 5. Antroji eilutė nurodo rodyklę į kintamojo atminties adresą. „Ptr“ deklaruojamas kaip „pointer to int“ tipo objektas, kurio pradinė reikšmė yra objekto i adresas. Iš esmės ptr kintamasis nurodo i, išsaugodamas jo atminties adresą.
Kviečiama išsaugoti atminties vietoje esančią vertę konferencijų nutraukimas. * Operatorius naudojamas žymėjimo žymėjimui panaikinti. Atlikus deklaracijas, netiesioginė išraiška * ptr nuokrypiai ptr reiškia i.
I reikšmei pakeisti gali būti naudojama ši užduotis;
* ptr = 20;
Rodyklės gali būti perduotos taip, kad būtų nurodomi ir skirtingi objektai.
A null žymeklis yra specialus rodyklės tipas. Nulis rodyklė dažnai žymima 0 arba null ir nurodo nieko. Jei neturite tikslaus žymeklio adreso, naudokite nulio žymiklį. Ši užduotis gali būti naudojama atliekant logines operacijas ir sąlygas.
Rodyklės gali būti naudojamas saugoti ir valdyti dinamiškai paskirstytos atminties adresus. Duomenų struktūrų, tokių kaip krūvos, eilės ir sąrašai, įgyvendinimas ir valdymas gali būti efektyvus naudojant rodykles. Pvz., Eilėje gali būti du rodyklės; galvos ir uodegos rodyklė. Rodyklės taip pat gali būti naudojamos perduoti kintamuosius pagal jų adresą, kuris leistų pakeisti reikšmę. Tiesiogiai valdyti atmintį arba atmintyje susietus įrenginius taip pat galima naudojant rodykles.
Rodyklės suteikia apsaugą ir neapsaugą prieigos prie adresinės atminties. Todėl reikia imtis būtinų atsargumo priemonių, kad patikrintumėte, ar rodyklės turinys yra teisingas. Priešingu atveju, nuvedus žymiklį su netinkamu atminties adresu, programa gali sugesti.
Rodyklės palaikomos tokiomis kalbomis kaip C, C ++, Pascal ir daugeliu surinkimo kalbų.
Rodyklė a nurodant atminties adresą, susijusį su kintamuoju b.
Nuoroda yra tiesiog alternatyvus atmintyje saugomos vertės identifikatorius. Tai leidžia programai netiesiogiai pasiekti tam tikrą atskaitos tašką.
int i = 5;
int & ref = aš;
Pirmoji eilutė apibūdina kintamąjį, kurio reikšmė yra 5. Antroji eilutė skelbia „ref“ kaip tipo „nuoroda į int“ objektą, kuris nurodo i. Nuoroda skiriasi nuo pačių duomenų tuo, kad nuoroda yra įgyvendinama kaip fizinis konkretaus duomenų, saugomų atmintyje, adresas.
Apibrėžus nuorodą, naujai reikšmei priskirti negalima. Nuoroda visada nurodo objektą, su kuriuo ji yra inicializuota. Tolesnėje užduotyje ref vis dar nurodo i, bet dabar vertė yra 20.
ref = 20;
Remiantis pirmiau pateiktu pavyzdžiu, nuorodų panaikinimo nereikalauja jokie operatoriai.
Nuorodos gali būti naudojamos, kai kintamasis visada nurodo objektą. Taip yra todėl, kad skirtingai nuo rodyklių, nuorodos negali būti niekinės ir jas visada reikia priskirti jas inicijuojant. Kadangi nuorodos visada turi būti susijusios su kokiu nors objektu, padarydami tokį kintamąjį nuoroda užtikrinsite, kad programa veiks efektyviai ir teisingai. Atsižvelgiant į tai, kad nėra nulio nuorodų, atskaitos kintamojo pagrįstumas nebūtina tikrinti.
Etaloniniai kintamieji gali būti naudojami veiksmingai perduoti didelius duomenis kaip argumentus procedūroms. Nuorodos taip pat naudojamos dalijantis dideliais duomenimis tarp skirtingų kodų sričių, nes kiekvienas kodas saugo nuorodą į duomenis.
Programavimo kalbos, tokios kaip C ++, Java, Python, Perl, PHP, Ruby ir kt. Palaiko nuorodas.
Rodyklė: Rodyklė yra objekto, saugomo kompiuterio atmintyje, atminties adresas.
Nuoroda: Nuoroda yra alternatyvus objekto identifikatorius arba slapyvardis.
Rodyklė: Rodyklė deklaruojama naudojant * operatorių.
Nuoroda: Nuoroda deklaruojama naudojant & operatorių.
Rodyklė: Rodyklės kintamajam reikia, kad * operatorius būtų atskirtas.
Nuoroda: Referencinis kintamasis nereikalauja jokio operatoriaus atskyrimo.
Rodyklė: Rodyklės gali būti inicijuotos iki nulio. Tokie kintamieji vadinami nuliniais rodyklėmis.
Nuoroda: Nuorodų negalima inicijuoti iki nulio. Nėra tokio dalyko kaip niekinė nuoroda. Nuoroda visada turi būti susijusi su objektu.
Rodyklė: Rodyklės kintamasis gali būti priskirtas skirtingiems objektams.
Nuoroda: Pamatinio kintamojo negalima priskirti. Tai visada nurodo objektą, su kuriuo jis buvo inicijuotas.
Rodyklė: Rodykliniai kintamieji turėtų būti naudojami, kai nėra galimybės nurodyti nieko, arba kai reikia nurodyti skirtingus dalykus skirtingu metu.
Nuoroda: Referenciniai kintamieji turėtų būti naudojami, kai visada bus objektas, į kurį reikia remtis, ir kai nereikia naudoti to referencinio kintamojo, kad būtų nuoroda į ką nors kitą, išskyrus tą objektą.
Rodyklė: Rodykliniai kintamieji gali būti naudojami algoritmams ir duomenų struktūroms įgyvendinti.
Nuoroda: Pamatiniai kintamieji gali būti naudojami funkcijos parametruose, o grįžimo tipai apibūdina naudingas sąsajas.
Rodyklė: Programavimo kalbos, tokios kaip C, C ++, Pascal ir daugelis surinkimo kalbų, palaiko rodykles.
Nuoroda: Programavimo kalbos, tokios kaip C ++, Java, Python, Perl, PHP, Ruby ir kt. Palaiko nuorodas.
Vaizdo mandagumas: „Rodykles“ pateikė šis failas: „SvenTranslation.Own work“. Šis vektorinis vaizdas buvo sukurtas naudojant „Inkscape“ (CC BY-SA 3.0) per „Commons“ -