? Donald Knuth , der i øjeblikket en professor emeritus i "The Art of Computer Programming " ved Stanford University, sagde i 1974 , at han anså pilvariablerne "for at være blandt datalogi mest værdifulde skatte. " Endnu mere end tre årtier senere, pointers stadig forvirrende for mange begyndelsen programmører. Derudover programmører bruger ofte pegepinde forkert, så gør koden ikke virker som planlagt , og spørgsmålet bliver endnu mere forplumret og forvirrende. En pointer er for adresser
Pointers er variabler , der indeholder adressen på en anden variabel , således de "point " til den anden variabel . Programmører er normalt komfortabel med ideen om variable - eksempelvis en variabel "x" indeholder værdien 25 . En pointer til "x" fortæller dig, hvor værdien af 25 er faktisk gemt i hukommelsen. Udskrivning af indholdet af en pointer variabel ville vise en memory -adresse , der traditionelt trykt i hexadecimal . Udskrivning af indholdet af "x" ville vise 25 . Adressen på en variabel er ikke så forskellig fra begrebet et brev med en postadresse trykt på kuverten. Adressen fortæller postbud , hvor at levere konvolutten. Indholdet af konvolutten er adskilt fra adressen . Adressen på en variabel er, hvor i hukommelsen indholdet af en variabel lagres.
Erklæring
erklæring en pointer er specifik for programmeringssprog. For eksempel sætningen " float y = 25,5 , * pointer_to_y = &y; " erklærer og initialiserer et decimaltal variablen "y " og en pointer variabel . Udskrivning af værdien af "y" ville give 25,5 , mens udskrivning af værdien af " pointer_to_y " ville give hvor " y" er gemt i hukommelsen.
Brug af pegepinde
< br >
Et vigtigt sted for pejlemærker i input. Når du beder brugeren om at indtaste et nummer , skal du gemme det nummer et sted. At fortælle dit input funktion, hvor at gemme værdien , skal du give adressen på en variabel , hvilket ville være "& number_of_students " i C. Hvis du bare angive " number_of_students ," du taler om den aktuelle værdi gemt i variablen , ligesom indholdet af konvolutten nævnt før, snarere end hvor til at gemme brugerens input.
funktioner
p Det er ineffektivt at passere store mængder data til funktioner . Pointers tillader dig at passere , hvor data gemmes , at din funktion har brug for. Din funktion kan få adgang til nødvendige data uden overhead for at videregive oplysningerne til rutinen .
Komplekse Datastrukturer
Advanced programmering problemer kræver avancerede programmering løsninger og datatyper . Programmører kan ikke let løse alle problemer med simple heltal, floating point og karakter datatyper. Programmører bruge linkede lister ofte i programmer , især når sortering komplekse datasæt. En linket liste er simpelthen en samling af data, såsom en medarbejders navn , ID og betale rate, lagres i en datastruktur . Ud over den ansattes data , indeholder hver datastruktur en pointer til den næste datastruktur i listen . Omorganisering medarbejder optegnelser er et spørgsmål om at omarrangere pegepinde, snarere end at skulle flytte store mængder data rundt blot ændre rækkefølgen på en liste .