Forskjellen Mellom Peker Og Matrise

Forskjellen Mellom Peker Og Matrise
Forskjellen Mellom Peker Og Matrise

Video: Forskjellen Mellom Peker Og Matrise

Video: Forskjellen Mellom Peker Og Matrise
Video: 2P - Forskjellen mellom lineær og eksponentiell funksjoner 2024, November
Anonim

Pointer vs Array

En peker er en datatype som inneholder en referanse til en minneplassering (dvs. en pekervariabel lagrer en adresse til en minneplassering der noen data er lagret). Arrays er den mest brukte datastrukturen for å lagre en samling elementer. De fleste programmeringsspråk gir metoder for å enkelt deklarere matriser og få tilgang til elementer i matriser.

Hva er en peker?

En peker er en datatype som lagrer en adresse til et minneplass der noen data er lagret. Med andre ord har en peker en referanse til en minneplassering. Å få tilgang til dataene som er lagret på minneplasseringen som det henvises til av pekeren, kalles dereferencing. Når du utfører repeterende operasjoner som å krysse trær / strenger, tabelloppslag osv., Vil bruk av pekere forbedre ytelsen. Dette er fordi dereferanse og kopiere pekere er billigere enn å faktisk kopiere og få tilgang til dataene som pekerne peker på. En nullpeker er en peker som ikke peker på noe. I Java vil tilgang til en nullpeker generere et unntak kalt NullPointerException.

Hva er en matrise?

Vist i figur 1, er et stykke kode som vanligvis brukes til å erklære og tildele verdier til en matrise. Figur 2 viser hvordan en matrise vil se ut i minnet.

verdier [0] = 100;

verdier [1] = 101;

verdier [2] = 102;

verdier [3] = 103;

verdier [4] = 104;

Figur 1: Kode for å deklarere og tilordne verdier til en matrise

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

Figur 2: Array lagret i minnet

Ovenfor koden definerer en matrise som kan lagre 5 heltall, og de får tilgang til ved hjelp av indeksene 0 til 4. En viktig egenskap for en matrise er at hele matrisen er allokert som en enkelt minneblokk og hvert element får sin egen plass i matrisen. Når en matrise er definert, blir størrelsen løst. Så hvis du ikke er sikker på størrelsen på matrisen ved kompileringstid, må du definere en stor nok matrise til å være på den sikre siden. Men som oftest skal vi faktisk bruke færre antall elementer enn vi har tildelt. Så en betydelig mengde minne er faktisk bortkastet. På den annen side hvis "stort nok array" faktisk ikke er stort nok, vil programmet krasje.

Hva er forskjellen mellom pekere og matriser?

En peker er en datatype som lagrer en adresse til en minneplassering der noen data er lagret, mens Arrays er den mest brukte datastrukturen for å lagre en samling av elementer. I C-programmeringsspråk gjøres indeksering av matriser ved hjelp av pekeraritmetikk (dvs. at ith-elementet i matrisen x tilsvarer * (x + i)). Derfor kan C-sett med pekere som peker på et sett med minneplasser som er fortløpende, betraktes som en matrise. Videre er det en forskjell i hvordan størrelsen på operatøren fungerer på pekere og matriser. Når den brukes på en matrise, returnerer størrelsen på operatøren hele størrelsen på matrisen, mens når den brukes på en peker, vil den returnere akkurat størrelsen på pekeren.

Anbefalt: