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: Самоделка покорившая интернет! ЗНАЛ БЫ РАНЬШЕ - СДЕЛАЛ СРАЗУ! 2024, Jūlijs
Anonim

Rādītājs pret masīvu

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

Kas ir rādītājs?

Rādītājs ir datu tips, kas saglabā tās atmiņas vietas adresi, kurā tiek glabāti daži dati. Citiem vārdiem sakot, rādītājs satur atsauci uz atmiņas vietu. Piekļuvi datiem, kas saglabāti atmiņas vietā, uz kuru atsaucas rādītājs, sauc par atsauces atcelšanu. Veicot atkārtotas darbības, piemēram, šķērsojot kokus/virknes, meklējot tabulas utt., rādītāju izmantošana uzlabotu veiktspēju. Tas ir tāpēc, ka norāžu atcelšana un kopēšana ir lētāka nekā faktiska kopēšana un piekļuve datiem, uz kuriem norāda norādes. Nulles rādītājs ir rādītājs, kas ne uz ko nenorāda. Programmā Java, piekļūstot nulles rādītājam, tiktu ģenerēts izņēmums, ko sauc par NullPointerException.

Kas ir masīvs?

Parādīts 1. attēlā, ir koda daļa, ko parasti izmanto, lai deklarētu un piešķirtu vērtības masīvam. 2. attēlā parādīts, kā masīvs izskatītos atmiņā.

int vērtības[5];

values[0]=100;

values[1]=101;

values[2]=102;

vērtības[3]=103;

values[4]=104;

1. attēls. Kods vērtību deklarēšanai un piešķiršanai masīvam

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

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

Iepriekšējais kods definē masīvu, kurā var saglabāt 5 veselus skaitļus, un tiem var piekļūt, izmantojot indeksus no 0 līdz 4. Viena svarīga masīva īpašība ir tāda, ka viss masīvs tiek piešķirts kā viens atmiņas bloks un katrs elements iegūst savu sava vieta masīvā. Kad masīvs ir definēts, tā lielums tiek fiksēts. Tātad, ja neesat pārliecināts par masīva lielumu kompilēšanas laikā, jums ir jādefinē pietiekami liels masīvs, lai tas būtu drošā pusē. Bet vairumā gadījumu mēs faktiski izmantosim mazāk elementu, nekā esam atvēlējuši. Tātad ievērojams atmiņas apjoms faktiski tiek iztērēts. No otras puses, ja “pietiekami liels masīvs” patiesībā nav pietiekami liels, programma avarēs.

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

Rādītājs ir datu tips, kas saglabā tās atmiņas vietas adresi, kurā tiek glabāti daži dati, savukārt masīvi ir visbiežāk izmantotā datu struktūra elementu kolekcijas glabāšanai. C programmēšanas valodā masīva indeksēšana tiek veikta, izmantojot rādītāja aritmētiku (t.i., masīva x i-tais elements būtu līdzvērtīgs (x+i)). Tāpēc C valodā rādītāju kopu, kas norāda uz secīgu atmiņas vietu kopu, var uzskatīt par masīvu. Turklāt pastāv atšķirības tajā, kā operatora lielums darbojas ar rādītājiem un masīviem. Lietojot masīvam, operators sizeof atgriezīs visu masīva lielumu, savukārt, ja tiek lietots rādītājam, tas atgriezīs tikai rādītāja lielumu.

Ieteicams: