Beroende på vem du frågar , pekare är antingen en välsignelse eller en förbannelse . Pekare skapa en mekanism för direkt åtkomst till och modifiera objekt och kod i minnet . Pekare används i många programmeringsspråk för att manipulera teckensträngar , skicka parametrar till funktioner , hantering kedjor av data och skapar länkade listor och andra komplexa datastrukturer. Medan pekare ge dig en stor flexibilitet för att hantera minne och optimera algoritmer , det finns nackdelar . Lära sig att använda pekare är svårt för många programmerare , och felsökning pekare problem är en utmaning . Optimering
Pekare ger en prestanda fördel genom att du kan komma åt datorns minne direkt . I ett datorprogram , är det snabbaste sättet att komma åt och ändra ett objekt för att direkt komma åt det fysiska minnet där objektet lagras . Denna teknik används ofta för att optimera algoritmer som kräver täta eller repetitiva tillgång till stora mängder data . Addera Säkerhet
Direkt åtkomst till minnet innebär att du kan göra saker som kanske du inte borde. Beroende på språket , kompilatorn och datorn plattformen , kan du oavsiktligt ( eller medvetet ) minne som inte är ditt att komma åt . Som ett resultat , kan du skriva kritiskt minne , modifiera koden för ett program som körs , eller låta din ansökan eller ett annat program för att uppföra eller avsluta oväntat . Ett vanligt fel är att köra förbi i slutet av en array , åtkomst till minnet efter utgången av det utrymme som tilldelats för denna samling . Addera ditt Memory Management
hantera minnesanvändningen i en tillämpning som använder pekare erbjuder flexibilitet men är också en knepig . Allokera och avallokering minnet som behövs under körning kan du skapa stora föremål , såsom arrayer , snabbt och omedelbart fri minnet när det inte längre behövs . Men det är också lätt att skapa minnesläckor genom att omplacera en pekare utan att frigöra minnet var det pekar på först . Sophämtning är ditt ansvar .
Funktionsparametrar
Funktioner kan returnera endast ett värde , men de kan ta flera parametrar . Genom att skicka in pekare till variabler som parametrar , kan en funktion kan användas för att ställa in värdena för dessa variabler , och de nya värdena kommer att kvarstå efter att funktionen returnerar . Att kunna ställa in värdet av flera variabler på en gång med ett enda funktionsanrop är ren och effektiv . Däremot kan det vara lite förvirrande att läsa eftersom du inte kan säga om de variabler passerade kommer att ändras eller inte genom att titta på funktionsanropet . Du kommer att behöva titta på funktionen dokumentationen för att lära sig hur funktionen beter
funktionspekare
Pekare är inte bara för objekt i minnet , . Kan de också användas för funktioner , vilket möjliggör en funktion som ska skickas som en parameter till en annan funktion . En funktion pekare kan tilldelas den adressen till en av ett urval av funktioner så att visaren fungerar som ett slags alias. Objektorienterade programmeringsspråk har eliminerat behovet av funktionspekare med arv och polymorfism .
Pointer Förvirring
Pekare är ett förvirrande ämne för många programmerare , särskilt de erfarna använda språk som inte har egenskaper pekare och Direct Memory Access . Leder dock uthållighet snabbt till behärskning av pekare . Pekare åtföljs ofta av dunkla syntax . Konsekvent variabla namnkonventioner kan hjälpa din kod bli mer lättläst . Till exempel , vanliga namngivningskonventioner inkluderar användning " P_ " eller " ptr_ " som prefix till pekarvariabel namn . Addera Tips
Använd alltid tilldelning funktionerna som tillhandahålls av språk för tilldelning minne , och kontrollera att minnet anslogs innan du använder den . Var försiktig med minneshantering och frigöra minne när det inte längre behövs . Om du överlåter en pekare till en ny minnesadress , se till att det gamla minnet frigörs eller tilldelas en annan pekare . Kontrollera att pekare skapas i funktioner tilldelas äganderätten till den förälder omfattning eller att minnet är deallokeras innan du avslutar funktionen .