Razlika Između Pokazivača I Niza

Razlika Između Pokazivača I Niza
Razlika Između Pokazivača I Niza

Video: Razlika Između Pokazivača I Niza

Video: Razlika Između Pokazivača I Niza
Video: Razlika izmedju OK i APPLY 2024, Svibanj
Anonim

Pokazivač protiv niza

Pokazivač je vrsta podataka koja sadrži referencu na memorijsko mjesto (tj. Varijabla pokazivača pohranjuje adresu memorijskog mjesta u kojem su pohranjeni neki podaci). Nizovi su najčešće korištena struktura podataka za pohranu zbirke elemenata. Većina programskih jezika pruža metode za lako deklariranje nizova i pristup elementima u nizovima.

Što je pokazivač?

Pokazivač je vrsta podataka koja pohranjuje adresu memorijskog mjesta u kojem su pohranjeni neki podaci. Drugim riječima, pokazivač sadrži referencu na memorijsko mjesto. Pristup podacima pohranjenim na memorijskom mjestu na koje se odnosi pokazivač naziva se dereferenciranje. Kada izvodite ponavljajuće operacije kao što su prelazak drveća / nizova, traženje tablice itd., Upotreba pokazivača poboljšala bi izvedbu. To je zato što je preusmjeravanje i kopiranje pokazivača jeftinije od stvarnog kopiranja i pristupa podacima na koje upućuju pokazivači. Nulti pokazivač je pokazivač koji ne upućuje ni na što. U Javi bi pristup null pokazivaču generirao iznimku koja se naziva NullPointerException.

Što je niz?

Na slici 1 prikazan je dio koda koji se obično koristi za deklariranje i dodjeljivanje vrijednosti nizu. Slika 2 prikazuje kako bi niz izgledao u memoriji.

vrijednosti [0] = 100;

vrijednosti [1] = 101;

vrijednosti [2] = 102;

vrijednosti [3] = 103;

vrijednosti [4] = 104;

Slika 1: Kôd za deklariranje i dodjeljivanje vrijednosti nizu

100 101 102 103 104 Indeks: 0 1 2 3 4

Slika 2: Niz pohranjen u memoriji

Iznad koda definira niz koji može pohraniti 5 cijelih brojeva i kojima se pristupa pomoću indeksa 0 do 4. Jedno važno svojstvo niza je da je čitav niz dodijeljen kao jedan blok memorije i svaki element dobiva svoj prostor u polju. Jednom kada je niz definiran, njegova je veličina fiksna. Dakle, ako niste sigurni u veličinu niza u vrijeme sastavljanja, morali biste definirati dovoljno velik niz da bude na sigurnoj strani. No, najčešće ćemo zapravo koristiti manji broj elemenata nego što smo dodijelili. Dakle, znatna količina memorije je zapravo izgubljena. S druge strane, ako "dovoljno velik niz" zapravo nije dovoljno velik, program bi se srušio.

Koja je razlika između pokazivača i nizova?

Pokazivač je vrsta podataka koja pohranjuje adresu memorijskog mjesta na kojem su pohranjeni neki podaci, dok su nizovi najčešće korištena podatkovna struktura za pohranu zbirke elemenata. U programskom jeziku C indeksiranje niza vrši se pomoću aritmetike pokazivača (tj. I-ti element niza x bio bi ekvivalentan * (x + i)). Stoga se u C skupu pokazivača koji upućuju na niz uzastopnih memorijskih mjesta može smatrati nizom. Nadalje, postoji razlika u načinu na koji veličina operatora djeluje na pokazivače i nizove. Kada se primijeni na niz, operator sizeof vratit će cijelu veličinu niza, dok bi se, kada se primijeni na pokazivač, vratio samo veličina pokazivača.

Preporučeno: