Erinevus Array ja Pointer vahel - Erinevus-Vahel

Erinevus Array ja Pointer vahel

The peamine erinevus massiivi ja pointeri vahel on see, et massiiv on andmestruktuur, mis salvestab sama andmeliigi elementide kogumi, samas kui kursor on muutuja, mis hoiab teise mälu aadressi arvuti mälus.

Array ja pointer on kaks mõistet, mida kasutatakse programmeerimiskeeles nagu C ja C ++. Massiiv on andmete kogum, millel on kindlaksmääratud arv sama andmeliigi väärtusi. Näiteks 10 õpilase märkide salvestamiseks saab programmeerija luua massiivi, mis mahutab 10 täisarvu. Teisest küljest on kursor muutuja, millel on teise muutuja aadress. Osutajad aitavad juurdepääsu mälule ja manipuleerida mälu aadressidega.

Kaetud peamised valdkonnad

1. Mis on Array
- Mõiste, funktsionaalsus
2. Mis on Pointer
- Mõiste, funktsionaalsus
3. Array ja pointeri vaheline seos
- Assotsiatsiooni ülevaade
3. Erinevus Array ja Pointer vahel
- peamiste erinevuste võrdlus

Võtmesõnad

Array, Pointer


Mis on Array

Massiiv on andmestruktuur, mis salvestab kindla arvu sama tüüpi elemente. Kõik massiivi elemendid on külgnevates mälukohtades.


Joonis 1: Array

Oletame, et peate salvestama 50 täisarvu. Igale täisarvule on võimalik luua muutujaid, kuid see on raske ja aeganõudvam. Selle probleemi lahendamiseks saab kasutada massiivi.

int numbrid [50];

Ülaltoodud avaldus eraldab massiivi, mida nimetatakse numbriteks, mis võib salvestada viiskümmend täisarvu. Massiivi konkreetset elementi saab hinnata indeksi abil. Algindeks on 0. Kuna massiivis on 50 elementi, on lõplikul elemendil indeks 49.

numbrid [1] = 30;

Ülaltoodud avaldus annab väärtusele 30 väärtuse 1st numbrite massiivi indeks.

Lisaks on võimalik luua teiste andmetüüpide massiive.

Näiteks kahekordne keskmine [10]; loob keskmise nimega massiivi. See võib salvestada 10 kahekordset väärtust.

Massiivi on lihtsam luua ja elementide juurde pääseda. Teisest küljest on massiivil fikseeritud suurus. Kui massiivi suurus on 10, ei saa seda kasutada 20 elemendi salvestamiseks. Teisisõnu, massiivi mälu eraldamine on staatiline.

Mis on Pointer

Muutuja on väärtuse salvestamiseks mõeldud mälukoht. Igal mälukohal on aadress selle tuvastamiseks.


Joonis 2: Pointer

Osuti on muutuja, mis salvestab teise muutuja aadressi. Osutaja deklareeritakse enne muutuva aadressi salvestamist. Tähist * kasutatakse kursorite deklareerimiseks.

int * ptr;

Ptr on täisarvu muutuja kursor.

topelt * ptr1;

Ptr1 on kahekordse muutuja kursor. Vaadake järgmist koodi.


Joonis 3: Programmeerimine viitega

Muutuja “a” sisaldab väärtust 20. ptr on täisarvu näit. Reas 8 määratakse ptr muutuja a aadress. Nüüd näitab ptr a-le. Seetõttu annab ptr poolt märgitud väärtuse trükkimine väärtuse a.

Kui aadressi ei ole määratud, saab kursorit omistada NULL-väärtusega. Seda tüüpi kursorit nimetatakse null-pointeriks.

int * ptr = NULL;

Array ja pointeri vaheline seos

Vaadake allpool toodud programmi.


Joonis 4: Noolekraanid

On massiiv nimega arr. See sisaldab 5 täisarvu. Ptr on täisarvu näit. Reas 8 on pt määratud ptr. Seetõttu näitab ptr massiivi 0. indeksielementi. Ptr väärtuse printimine näitab väärtust 0th indeksi element. See on 10.

Erinevus Array ja Pointer vahel

Määratlus

Array on andmestruktuur, mis koosneb elementide kogumist, mida igaüks identifitseerib massiiviindeksiga. Osuti on programmeerimiskeelobjekt, mis salvestab teise mälu aadressi, mis asub arvuti mälus.

Alus

Kuigi massiiv viitab andmeelementide kogumile, on kursor muutuja, mis osutab mõnele muule mälu asukohale.

Süntaksi

Array süntaks - andme tüüp arrayName [data type];

Kursori süntaks - andme tüüp * muutuja_nimi;

Kasutamine

Kuigi massiive saab kasutada fikseeritud suurusega mälu (staatiline mälu) eraldamiseks, võib dünaamilise mälu eraldamiseks kasutada viiteid.

Järeldus

Kaks mõistet array ja pointer on kaks programmeerimiskontseptsiooni. Erinevus massiivi ja pointeri vahel on see, et massiiv on andmestruktuur, mis salvestab sama andmeliigi elementide kogumi, samas kui kursor on muutuja, mis hoiab teise mälu aadressi arvuti mälus.

Viide:

1. “Arrays in C.” Www.tutorialspoint.com, õpetuste punkt,