Skip to main content

Hvad er en række pointers?

En række pointers er en standard array -datatype, der indeholder en række hukommelse adresseret til datatyper i modsætning til at holde andre skalære typer såsom heltal eller flydende punktnumre.Ved at bruge en række pointers er et program i stand til at have en række næsten enhver datatype, datastruktur, klasse eller endda funktion.Effektiv sortering af en række pointers er også mulig, så adresserne, hvis de ønskes, kan justeres i henhold til deres fysiske placering i computerhukommelsen.Nogle af komplikationerne ved at bruge en række pointers er, at dataene let kan ødelægges, og at den type data, der peges påKonceptet blev oprindeligt undfanget.Sprog på højt niveau, der automatiserer hukommelsesstyring, bruger ikke pointer på samme måde som sprog på lavere niveau, selvom det teknisk set er en række klasseobjekter på et højt niveau, objektorienteret sprog er en række pointer;Alligevel kan de ikke bruges eller manipuleres på samme måde.På et sprog på lavt niveau vil arrayet faktisk have en heltalværdi, der er den direkte adresse på markøren i hukommelseshøjen.På de fleste sprog på højt niveau er denne funktionalitet ikke mulig, skønt der findes alternative paradigmer.

Et af de aspekter, der gør en række pointers værdifulde som et programmeringsværktøj, er, at pointerne kan henvise til enhver form for tilgængelige data.Markøren er en datatype i sig selv, selvom dens eneste formål er at pege mod en anden datatype.Dette betyder, at en række pointer faktisk kan indeholde en række datatyper i den samme matrix, selvom programmet skulle have en mekanisme til at holde styr på, hvad hver markør henviste til.

Et kraftfuldt aspekt af pointer er, at de faktisk kanPeg på kompileret programkode i hukommelsen.Dette gør det muligt for en matrix at pege på funktioner, ikke kun data.En række funktioner kan muliggøre dynamisk numerisk henvisning af kode.Dette kan være nyttigt, når man programmerer en sprogtolk eller anden type software, der skal kalde visse funktioner baseret på uforudsigelige input uden behov for store betingede udsagn, såsom switch -blokke.

Nogle problemer, der er præsenteret af en række pointerdata, er mulighedenAt miste adressen, forhindre, at hukommelsen frigøres senere, og chancen for, at en adresse kan ødelægges gennem en utilsigtet operation som tilføjelse.Forsøg på at få adgang til en forkert adresse kan føre til, at korrupte data læses, eller i ekstreme tilfælde, såsom en mislykket initialisering, en segmenteringsfejl, der kan få programmet til at afslutte uventet.Forsigtig programmering kan hjælpe med at afbøde muligheden for disse begivenheder.