Atšķirība Starp Rādītāju Un Masīvu

Atšķirība Starp Rādītāju Un Masīvu
Atšķirība Starp Rādītāju Un Masīvu

Video: Atšķirība Starp Rādītāju Un Masīvu

Video: Atšķirība Starp Rādītāju Un Masīvu
Video: Section, Week 5 2024, Maijs
Anonim

Rādītājs pret masīvu

Rādītājs ir datu tips, kurā ir atsauce uz atmiņas vietu (ti, rādītāja mainīgais saglabā atmiņas vietas adresi, kurā glabājas daži dati). Masīvi ir visbiežāk izmantotā datu struktūra, lai saglabātu elementu kolekciju. Lielākā daļa programmēšanas valodu nodrošina metodes, kā viegli deklarēt masīvus un piekļūt masīvos esošajiem elementiem.

Kas ir rādītājs?

Rādītājs ir datu tips, kurā tiek glabāta atmiņas vietas adrese, kurā glabājas daži dati. Citiem vārdiem sakot, rādītājā ir norāde uz atmiņas vietu. Piekļuvi datiem, kas saglabāti atmiņas vietā, uz kuru norāda rādītājs, sauc par novirzīšanu. Veicot atkārtotas darbības, piemēram, koku / virkņu šķērsošanu, tabulas meklēšanu utt., Norāžu izmantošana uzlabotu veiktspēju. Tas ir tāpēc, ka norāžu novirzīšana un kopēšana ir lētāka nekā faktiski kopēšana un piekļuve rādītāju norādītajiem datiem. Nulles rādītājs ir rādītājs, kas neko nenorāda. Java, piekļuve nulles rādītājam radītu izņēmumu, ko sauc par NullPointerException.

Kas ir masīvs?

Parādīts 1. attēlā ir koda gabals, ko parasti izmanto masīva vērtību deklarēšanai un piešķiršanai. 2. attēlā attēlots, kā masīvs izskatītos atmiņā.

vērtības [0] = 100;

vērtības [1] = 101;

vērtības [2] = 102;

vērtības [3] = 103;

vērtības [4] = 104;

1. attēls: kods masīva vērtību deklarēšanai un piešķiršanai

100 101 102 103. 104 Indekss: 0 1 2 3 4

2. attēls: Atmiņā saglabāts masīvs

Virs koda ir noteikts masīvs, kurā var uzglabāt 5 veselus skaitļus, un tiem piekļūst, izmantojot indeksus no 0 līdz 4. Viena svarīga masīva īpašība ir tā, ka viss masīvs tiek piešķirts kā viens atmiņas bloks, un katrs elements masīvā iegūst savu vietu. Kad masīvs ir definēts, tā lielums tiek fiksēts. Tātad, ja kompilācijas laikā neesat pārliecināts par masīva lielumu, jums vajadzētu definēt pietiekami lielu masīvu, lai tas būtu drošībā. Bet lielākoties mēs faktiski izmantosim mazāk elementu, nekā esam piešķīruši. Tātad ievērojams daudzums atmiņas faktiski tiek izniekots. No otras puses, ja “pietiekami liels masīvs” patiesībā nav pietiekami liels, programma avarētu.

Kāda ir atšķirība starp rādītājiem un masīviem?

Rādītājs ir datu tips, kurā tiek glabāta atmiņas vietas adrese, kurā glabājas daži dati, savukārt masīvi ir visbiežāk izmantotā datu struktūra, lai saglabātu elementu kolekciju. C programmēšanas valodā masīvu indeksēšana tiek veikta, izmantojot rādītāju aritmētiku (ti, masīva x-tais elements būtu ekvivalents * (x + i)). Tāpēc C rādītāju kopu, kas norāda uz atmiņas vietu kopumu, kas ir secīgi, var uzskatīt par masīvu. Turklāt ir atšķirība, kā operatora lielums darbojas ar rādītājiem un masīviem. Lietojot masīvam, operatora sizeof vērtība atgriezīs visu masīva lielumu, turpretī, lietojot rādītājam, tā atgriezīs tikai rādītāja lielumu.

Ieteicams: