? Donald Knuth , som for tiden er professor emeritus i " The Art of Computer Programming " ved Stanford University, sa i 1974 at han anså pekervariabler "for å være blant informatikk mest verdifulle skatter . " Likevel , mer enn tre tiår senere, er pekere fortsatt forvirrende for mange begynner programmerere . I tillegg programmerere ofte bruker pekere feil , så gjør koden ikke fungerer som planlagt, og problemet blir enda mer tåkete og forvirrende . En Pointer Er for adresser
pekere er variabler som inneholder adressen til en annen variabel , og dermed de "peker " til den andre variabelen. Programmerere er normalt komfortabel med tanken på variabler - for eksempel en variabel "x " inneholder verdien 25 år. En peker til " x " forteller deg hvor verdien av 25 er faktisk lagret i minnet . Skrive ut innholdet i en peker variabel ville vise et minne adresse , tradisjonelt ut som heksadesimale . Skrive ut innholdet i "x " ville vise 25 . Adressen til en variabel er ikke så forskjellig fra begrepet et brev med en postadresse på konvolutten . Adressen forteller mail carrier hvor du skal levere konvolutten . Innholdet av konvolutten er adskilte fra adressen. Adressen til en variabel er hvor i minnet innholdet i en variabel er lagret.
Declaration
erklæring av en peker er spesifikk for programmeringsspråk. For eksempel utsagnet " float y = 25.5 , * pointer_to_y = &y; " erklærer og initialiserer et flyttall variable " y" og en peker variabel . Skrive ut verdien av " y" ville gi 25,5 , mens du skriver ut verdien av " pointer_to_y " ville gi der " y " er lagret i minnet .
Bruk av pekere
Et viktig sted for pekere er i inngang . Når du ber brukeren om å taste inn et nummer , må du lagre dette nummeret et sted. Å fortelle dine innspill funksjon hvor du vil lagre verdien , må du oppgi adressen til en variabel , noe som ville være "& number_of_students " i C. Hvis du bare oppgir " number_of_students , " du snakker om den nåværende verdien som er lagret i variabelen , som innholdet i konvolutten nevnt før , heller enn hvor du vil lagre brukerens input .
funksjoner
p Det er ineffektivt å passere store mengder data til funksjoner. Pekere tillate deg å passere der dataene er lagret som din funksjon trenger . Din funksjon kan få tilgang til nødvendige data uten overhead for overføring av data til rutinen .
Komplekse datastrukturer
Avansert programmering problemer krever avanserte programmering løsninger og datatyper . Programmerere kan ikke lett løse alle problemer med enkle heltall , flyttall og karakter datatyper. Programmerere bruke lenkede lister ofte i programmer , spesielt når sortering komplekse datasett. En lenket liste er rett og slett en samling av data, for eksempel en arbeidstakers navn , ID og betale rente, lagret i en datastruktur . I tillegg til den ansattes data inneholder hver datastruktur en peker til den neste datastrukturen i listen. Omorganisere ansatte poster er et spørsmål om å omorganisere pekere , heller enn å måtte flytte store mengder data rundt å bare omgjøre en liste .