Atšķirība starp rādītāju un masīvu

Rādītājs vs Array

Rādītājs ir datu tips, kas satur atsauci uz atmiņas vietu (t.i., rādītāja mainīgais saglabā atmiņas vietas adresi, kurā tiek glabāti 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 masīvu un piekļuves elementu vieglai deklarēšanai masīvā.

Kas ir rādītājs?

Rādītājs ir datu tips, kurā tiek saglabāta atmiņas vietas adrese, kurā tiek glabāti daži dati. Citiem vārdiem sakot, rādītājam ir atsauce uz atmiņas vietu. Piekļuvi datiem, kas saglabāti atmiņas vietā un uz kuriem norāda rādītājs, sauc par pārtraukšanu. Veicot atkārtotas darbības, piemēram, pārvietojoties pa kokiem / stīgām, meklējot galdus utt., Rādītāju izmantošana uzlabotu darbību. Tas notiek tāpēc, ka norāžu atsaukšana un kopēšana ir lētāka nekā faktiski kopēšana un piekļuve datiem, uz kuriem norāda norādes. Null rādītājs ir rādītājs, kas neko nenorāda. Java, piekļūstot nulles rādītājam, tiek ģenerēts izņēmums, 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ā parādīts, kā masīvs izskatās atmiņā.

int vērtības [5];

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. Masīva vērtību deklarēšanas un piešķiršanas kods


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

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

Virs 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 no svarīgām masīva īpašībām 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 sastādīšanas laikā neesat pārliecināts par masīva lielumu, jums jādefinē pietiekami liels masīvs, lai tas atrastos drošajā pusē. Bet lielākoties mēs faktiski izmantosim mazāk elementu, nekā esam iedalījuši. Tātad faktiski tiek tērēts ievērojams atmiņas apjoms. No otras puses, ja “pietiekami liels masīvs” faktiski nav pietiekami liels, programma sabojājas.

Kāda ir atšķirība starp Pointers un Arrays?

Rādītājs ir datu tips, kurā tiek saglabāta atmiņas vietas adrese, kurā tiek glabāti daži dati, savukārt masīvi ir visbiežāk izmantotā datu struktūra, lai saglabātu elementu kolekciju. C programmēšanas valodā masīva indeksācija 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 daļā norāžu kopu, kas norāda uz secīgu atmiņas vietu kopu, var uzskatīt par masīvu. Turklāt pastāv atšķirība operatora lieluma darbībā ar rādītājiem un blokiem. Ja to piemēro masīvam, operatora izmērs atdos visu masīva izmēru, turpretim, ja to uzliek rādītājam, tas atgriezīs tikai rādītāja lielumu..