Pekeren er et programmeringsspråk teknikk som gjør det mulig for programmerer å referere til en variabel med et minne henvisning snarere enn til variabelen selv. Det har fordeler og ulemper fremfor å bruke direkte variable oppdrag og er en viktig programmering metode for nybegynnere til middels programmerer. Peker Referere
Når du tilordner en variabel i alle programmeringsspråk , er en viss mengde systemminne satt av til å holde sine data . For enkle variabler , vil dette vanligvis være en liten mengde minne , men for lister og matriser av vilkårlig lengde, kan mengden minne som brukes være svært stor . Enkelte funksjoner og operasjoner utført på variablene nødvendiggjøre kopiere sine data inn i en arbeidsplass , når variablene drives på er store , kan mengden av data som skal kopieres tregere programmets operasjon, eller i begrensede minne situasjoner føre til at programmet . krasj
pekere unngå dette problemet ved å opprette bokmerke steder i minne, drift er deretter gjort på minneplasser , snarere enn de faktiske data som er lagret i variabelen . Tenk som et eksempel et program som laster flere tusen poster fra en database til en rekke variable . Hvis du utfører en operasjon som: " returnere den femte posten fra tabellen , " i enkelte ikke- optimaliserte språk dette vil duplisere hele listen før den femte posten kan bli funnet og utvunnet . En peker til samme sted i minnet, men kan programmatisk hente disse dataene uten at hele matrisen til å bli duplisert internt.
Pointer feil
Care må tas for å forstå den interne driften av et programmeringsspråk ved tildeling av variabler . Tenk på følgende pseudokode : en
a = 5b = aa = 10print b
I noen språk , den "b = a " vil tildele verdien av variabelen "a" til variabel "b . " I disse tilfellene vil "print b " operasjon return " 5 ", som var verdien av "a" på den tiden det ble tildelt "b ". Men i andre språk , "b = a " skaper en peker ( eller referanse) fra "b " til " en , " gi samme variabel to forskjellige navn . I disse språkene, når verdien av "a" blir endret , er verdien av "b" også endret , og resultatet av "print b " vil være "5 ".
Likeledes når en variabel oppdrag er rett og slett en referanse , kan feil bli introdusert som følger : en
a = 5b = adelete aprint b
i dette tilfellet , hvis "b" og "a" refererer til den samme variabelen , når variabelen en er slettet , variabel "b" ikke lenger eksisterer , og dette programmet vil ende med en henrettelse feil
Hvert språk har sine egne regler for håndtering av pekere , referanser og variable minneplasser , så teknikker lært for en. språket må justeres basert på programmering miljøet du bruker .