Video: Näitaja Ja Massiivi Erinevus
2024 Autor: Mildred Bawerman | [email protected]. Viimati modifitseeritud: 2023-12-16 08:38
Kursor vs massiiv
Kursor on andmetüüp, mis sisaldab viidet mälupesale (st kursori muutuja salvestab aadressi mälupesale, kuhu mõned andmed on salvestatud). Massiivid on elementide kogu salvestamiseks kõige sagedamini kasutatav andmestruktuur. Enamik programmeerimiskeeli pakub meetodeid massiivide ja massiividele juurdepääsu elementide hõlpsaks deklareerimiseks.
Mis on osuti?
Kursor on andmetüüp, mis salvestab mälu asukoha aadressi, kuhu osa andmeid on salvestatud. Teisisõnu, osutil on viide mälukohale. Juurdepääsu andmetele, mis on talletatud mälu asukohta, millele osutaja osutab, nimetatakse alamtõmbeks. Korduvate toimingute tegemisel, näiteks puude / nööride läbimine, tabelite otsimine jne, parandaks näitajate kasutamine jõudlust. Selle põhjuseks on asjaolu, et osutite viitamine ja kopeerimine on odavam kui tegelikult osutajate poolt kopeeritud andmete juurde pääsemine ja neile juurdepääs. Nullkursor on osuti, mis ei osuta millelegi. Java-s tekitaks nullkursori juurde pääsemine erandi nimega NullPointerException.
Mis on massiiv?
Joonisel 1 on kooditükk, mida tavaliselt kasutatakse massiivi väärtuste deklareerimiseks ja määramiseks. Joonisel 2 on kujutatud, kuidas massiiv mälus välja näeks.
väärtused [0] = 100; väärtused [1] = 101; väärtused [2] = 102; väärtused [3] = 103; väärtused [4] = 104; |
Joonis 1: Massiivi väärtuste deklareerimise ja määramise kood
100 | 101 | 102 | 103 | 104 |
Indeks: 0 | 1 | 2 | 3 | 4 |
Joonis 2: Mällu salvestatud massiiv
Koodi kohal määratletakse massiiv, kuhu saab salvestada 5 täisarvu ja neile pääseb juurde indeksite 0 kuni 4 abil. Massiivi üks oluline omadus on see, et kogu massiiv eraldatakse ühe mäluplokina ja iga element saab massiivis oma ruumi. Kui massiiv on määratletud, on selle suurus fikseeritud. Nii et kui te pole kompileerimise ajal massiivi suuruses kindel, peaksite turvalise külje jaoks määrama piisavalt suure massiivi. Kuid enamasti kasutame tegelikult vähem elemente, kui oleme eraldanud. Nii et arvestatav hulk mälu läheb tegelikult raisku. Teisalt, kui “piisavalt suur massiiv” pole tegelikult piisavalt suur, kukuks programm kokku.
Mis vahe on osutitel ja massiividel?
Kursor on andmetüüp, mis salvestab mälu asukoha aadressi, kuhu osa andmeid on salvestatud, samas kui massiivid on kõige sagedamini kasutatav andmestruktuur elementide kogu salvestamiseks. C-programmeerimiskeeles toimub massiivi indekseerimine kursori aritmeetika abil (st massiivi i-s element oleks samaväärne * (x + i)). Seetõttu võib C-s pidada massiiviks osutajate komplekti, mis osutab järjestikustele mälupaikade komplektile. Lisaks on erinevus selles, kuidas operaatori suurus osutitel ja massiividel töötab. Massiivile rakendamisel tagastab operaatori sizeof massiivi kogu suuruse, samas kui osutile rakendatuna tagastab see lihtsalt kursori suuruse.
Soovitatav:
Sümmeetriliste Ja Asümmeetriliste Tippmolekulide Erinevus
Põhiline erinevus sümmeetriliste ja asümmeetriliste tippmolekulide vahel on see, et sümmeetrilistel tippmolekulidel on üks õige pöörlemistelg ja kaks inertsimomenti
Erinevus Transgeensete Ja Väljalangevate Hiirte Vahel
Peamine erinevus transgeensete ja knockout-hiirte vahel on see, et transgeensete hiirte genoomi on sisestatud võõrgeenid, samas kui knockout-hiirtel
Erinevus Tsisgeneesi Ja Intrageneesi Vahel
Peamine erinevus tsisgeneesi ja intrageneesi vahel on see, et tsisgeneesis sisestatakse geenid ilma DNA järjestust muutmata ja ge
Erinevus Tõusva Ja Kahaneva Paberikromatograafia Vahel
Peamine erinevus tõusva ja kahaneva paberikromatograafia vahel on see, et tõusev paberikromatograafia hõlmab lahusti liikumist
Erinevus DNA-RNA Hübriidide Ja DsDNA Vahel
Peamine erinevus DNA-RNA hübriidide ja dsDNA vahel on see, et DNA-RNA hübriidid on kaheahelalised nukleotiidid, mis koosnevad ühest DNA-ahelast ja ühest komplemendist