Forskellen Mellem Pointer Og Array

Forskellen Mellem Pointer Og Array
Forskellen Mellem Pointer Og Array

Video: Forskellen Mellem Pointer Og Array

Video: Forskellen Mellem Pointer Og Array
Video: Pointer to Array 2024, November
Anonim

Markør vs Array

En markør er en datatype, der indeholder en henvisning til en hukommelsesplacering (dvs. en markørvariabel gemmer en adresse på en hukommelsesplacering, hvor nogle data er gemt). Arrays er den mest anvendte datastruktur til at gemme en samling af elementer. De fleste programmeringssprog giver metoder til let at erklære arrays og få adgang til elementer i arrays.

Hvad er en pointer?

En markør er en datatype, der gemmer en adresse på en hukommelsesplacering, hvor nogle data er gemt. Med andre ord holder en markør en henvisning til en hukommelsesplacering. Adgang til de data, der er gemt på hukommelsesplaceringen, som der henvises til af markøren, kaldes dereferencing. Når du udfører gentagne handlinger som at krydse træer / strenge, opslag på borde osv., Vil det ved hjælp af markører forbedre præstationen. Dette skyldes, at derferference og kopiering af markører er billigere end faktisk at kopiere og få adgang til de data, som markørerne peger på. En nul pointer er en pointer, der ikke peger på noget. I Java ville adgang til en nul pointer generere en undtagelse kaldet en NullPointerException.

Hvad er en matrix?

Vist i figur 1 er et stykke kode, der typisk bruges til at deklarere og tildele værdier til en matrix. Figur 2 viser, hvordan en matrix vil se ud i hukommelsen.

værdier [0] = 100;

værdier [1] = 101;

værdier [2] = 102;

værdier [3] = 103;

værdier [4] = 104;

Figur 1: Kode til erklæring og tildeling af værdier til en matrix

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

Figur 2: Array gemt i hukommelsen

Ovenstående kode definerer en matrix, der kan lagre 5 heltal, og de åbnes ved hjælp af indeks 0 til 4. En vigtig egenskab ved en matrix er, at hele arrayet allokeres som en enkelt hukommelsesblok, og hvert element får sit eget rum i arrayet. Når en matrix er defineret, er dens størrelse rettet. Så hvis du ikke er sikker på størrelsen af arrayet på kompileringstidspunktet, bliver du nødt til at definere en stor nok array til at være i den sikre side. Men for det meste vil vi faktisk bruge færre antal elementer, end vi har tildelt. Så en betydelig mængde hukommelse spildes faktisk. På den anden side, hvis "stort nok array" faktisk ikke er stort nok, ville programmet gå ned.

Hvad er forskellen mellem peger og arrays?

En markør er en datatype, der gemmer en adresse på et hukommelsessted, hvor nogle data er gemt, mens Arrays er den mest anvendte datastruktur til at gemme en samling af elementer. I C-programmeringssprog udføres matrixindeksering ved hjælp af pointer-aritmetik (dvs. at ith-elementet i arrayet x svarer til * (x + i)). Derfor kan C-sæt af markører, der peger på et sæt hukommelsesplaceringer, der er fortløbende, betragtes som en matrix. Derudover er der en forskel i, hvordan størrelsen på operatøren fungerer på pekere og arrays. Når den anvendes til en matrix, returnerer størrelse af operatøren hele størrelsen af matrixen, mens når den anvendes på en markør, ville den kun returnere markørens størrelse.

Anbefalet: