Razlika Med Kazalcem In Matriko

Razlika Med Kazalcem In Matriko
Razlika Med Kazalcem In Matriko

Video: Razlika Med Kazalcem In Matriko

Video: Razlika Med Kazalcem In Matriko
Video: Раздел, неделя 5 2024, November
Anonim

Kazalec vs Array

Kazalec je podatkovni tip, ki vsebuje sklic na pomnilniško lokacijo (tj. Spremenljivka kazalca shrani naslov pomnilniške lokacije, v kateri je shranjenih nekaj podatkov). Polja so najpogosteje uporabljena podatkovna struktura za shranjevanje zbirke elementov. Večina programskih jezikov ponuja metode za enostavno razglasitev nizov in dostop do elementov v nizih.

Kaj je kazalec?

Kazalec je podatkovna vrsta, ki shrani naslov pomnilniške lokacije, v kateri je shranjenih nekaj podatkov. Z drugimi besedami, kazalec vsebuje sklic na pomnilniško mesto. Dostop do podatkov, shranjenih na pomnilniškem mestu, na katerega se sklicuje kazalec, se imenuje preusmeritev. Pri izvajanju ponavljajočih se operacij, kot je prehajanje dreves / nizov, iskanje tabel itd., Bi uporaba kazalcev izboljšala zmogljivost. To je zato, ker je preusmerjanje in kopiranje kazalcev cenejše kot dejansko kopiranje in dostop do podatkov, na katere kažejo kazalci. Ničelni kazalec je kazalec, ki ne kaže na nič. V Javi bi dostop do ničelnega kazalca ustvaril izjemo, imenovano NullPointerException.

Kaj je matrika?

Na sliki 1 je prikazan del kode, ki se običajno uporablja za deklariranje in dodelitev vrednosti matriki. Slika 2 prikazuje, kako bi bila matrika videti v spominu.

vrednosti [0] = 100;

vrednosti [1] = 101;

vrednosti [2] = 102;

vrednosti [3] = 103;

vrednosti [4] = 104;

Slika 1: Koda za prijavo in dodelitev vrednosti matriki

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

Slika 2: Niz, shranjen v pomnilniku

Zgornja koda definira matriko, ki lahko shrani 5 celih števil in do njih pridete z uporabo indeksov od 0 do 4. Ena pomembnih lastnosti matrike je, da je celotno polje dodeljeno kot en blok pomnilnika in vsak element dobi svoj prostor v matriki. Ko je polje definirano, je njegova velikost fiksna. Če torej niste prepričani o velikosti matrike v času prevajanja, bi morali določiti dovolj veliko matriko, da bi bila na varni strani. Toda v večini primerov bomo dejansko uporabili manj elementov, kot smo jih dodelili. Tako je dejansko zapravljena precejšnja količina spomina. Po drugi strani pa, če »dovolj velika matrika« dejansko ni dovolj velika, bi se program zrušil.

Kakšna je razlika med kazalci in nizi?

Kazalec je podatkovna vrsta, ki shrani naslov pomnilniške lokacije, v kateri je shranjenih nekaj podatkov, medtem ko so nizi najpogosteje uporabljena podatkovna struktura za shranjevanje zbirke elementov. V programskem jeziku C indeksiranje matrike poteka z uporabo aritmetike kazalca (tj. I-ti element polja x bi bil enak * (x + i)). Zato lahko v C nabor kazalcev, ki kažejo na niz zaporednih pomnilniških mest, predstavljamo kot matriko. Poleg tega obstaja razlika v tem, kako velikost operaterja deluje na kazalce in polja. Ko je operator sizeof uporabljen v matriki, bo vrnil celotno velikost polja, medtem ko bo pri uporabi kazalca vrnil le velikost kazalca.

Priporočena: