pekaren en programmeringsteknik som gör det möjligt för programmerare att referera till en variabel med ett minne referens snarare än till själva variabeln . Det finns fördelar och nackdelar jämfört med att använda direkta rörliga uppdrag och är en viktig programmering metod för nybörjare till mellannivå programmerare . Pointer Referera
När du tilldelar en variabel i ett programmeringsspråk , är en viss mängd systemminne som avsatts för att hålla sina uppgifter . För enkla variabler , kommer detta vanligtvis att vara en liten mängd av minne , men för listor och matriser med godtycklig längd , kan mängden minne som används vara mycket stora. Vissa funktioner och operationer som utförs på variabler nödvändiggör kopiera sina data till en arbetsplats , när de variabler opererade är stora , kan mängden data som måste kopieras bromsa programmets verksamhet , eller i begränsade minne situationer , göra att programmet . krasch
Pekare undvika detta problem genom att skapa bokmärken platser i minnet , operationer görs sedan på minnesplatser , snarare än de faktiska data som lagras i variabeln . Betrakta som exempel ett program som läser in flera tusen poster från en databas till en array variabel . Om du utför en åtgärd som , " tillbaka den femte posten från arrayen , " i vissa icke - optimerade språk kommer detta att kopiera hela listan innan den femte posten kan hittas och extraheras . En pekare till samma minnesplats , dock kan programmässigt hämta dessa data utan att hela arrayen som skall dupliceras internt .
Pointer fel
Försiktighet måste vidtas för att förstå den interna verksamheten i ett programmeringsspråk när du tilldelar variabler . Betrakta följande pseudokod :
a = 5b = AA = 10print b på
I vissa språk , "b = a " operation tilldelar värdet av variabeln " a " till variabel " b. . " I dessa fall kommer "print b" operation tillbaka " 5 ", som var värdet på " a " när den fick " b". Men i andra språk , " b = a " skapar en pekare ( eller referens ) från " B " till " a ", som ger samma variabel två olika namn . I dessa språk , när värdet av " a " skall ändras , är värdet av " b " också förändrats , och resultatet av " print B " blir " 5 . "
Likaså när en variabeltilldelning är helt enkelt en referens , kan felaktigheter införas enligt följande :
a = 5b = adelete aprint b på
i detta fall, om " b" och " a " hänvisar till samma variabel , när variabeln a utgå , variabeln " b" inte längre existerar , detta program kommer att avslutas med ett exekveringsfel
Varje språk har sina egna regler för att hantera pekare , referenser och variabla minnesplatser , så tekniker lärt sig för en. språk måste justeras , baserat på den programmeringsmiljö du använder .