? Donald Knuth , för närvarande en professor emeritus i " The Art of Computer Programming " vid Stanford University , sade 1974 att han ansåg pekarvariablerna " att vara bland datavetenskap mest värdefulla skatter . " Men mer än tre decennier senare , är pekare förvirrande fortfarande många börjar programmerare . Dessutom , programmerare använder ofta pekare fel , inte så koden inte fungerar som planerat och frågan blir ännu mer dystra och förvirrande . En pekare för Adresser
Pekare är variabler som innehåller adressen till en annan variabel , vilket de "punkt" till den andra variabeln. Programmerare är normalt bekväm med tanken på variabler - till exempel en variabel " x " innehåller värdet 25 . En pekare till " x " anger var värdet 25 är faktiskt lagras i minnet . Skriva ut innehållet i en pekarvariabel skulle uppvisa en minnesadress , traditionellt ut i hexadecimal . Skriva ut innehållet i "x" skulle uppvisa 25 . Adressen till en variabel är inte så annorlunda från begreppet ett brev med en postadress tryckt på kuvertet . Adressen berättar brevbäraren var att leverera kuvertet . Innehållet i kuvertet är separata från adressen. Adressen till en variabel är där i minnet innehållet i en variabel lagras .
Förklaring
försäkran om en pekare är specifika för programmeringsspråk . Till exempel påståendet " float y = 25,5 , * pointer_to_y = &y; " deklarerar och initierar ett flyttal variabeln " y " och en pekare variabel . Skriva värdet " y " skulle ge 25,5 , medan du skriver värdet " pointer_to_y " skulle ge när " y " är lagrat i minnet .
Användning av pekare
En viktig plats för pekare är i indata . När du ber användaren att ange ett nummer , måste du spara det numret någonstans . Att berätta för din input funktion där för att lagra värdet , måste du ge adressen till en variabel , vilket skulle vara " & number_of_students " i C. Om du bara anger " number_of_students , " du talar om det aktuella värdet lagras i variabeln , som innehållet i kuvertet tidigare nämnts , i stället var att lagra användarens input .
funktioner
p Det är ineffektivt att passera stora mängder data till funktioner . Pekare låter dig passa där data lagras som din funktion behöver . Din funktion kan komma åt data som behövs utan overhead att överföra uppgifterna till rutinen .
Komplexa datastrukturer
avancerad programmering problem kräver avancerade programmering lösningar och datatyper . Programmerare kan inte enkelt lösa alla problem med enkla heltal , flyttal och uppgifter teckentyper . Programmerare använder länkade listor ofta i program , särskilt vid sortering komplexa datamängder . En länkad lista är helt enkelt en samling av data, till exempel en anställds namn , ID och betala ränta , som lagras i en datastruktur . Förutom den anställdes uppgifter innehåller varje datastruktur en pekare till nästa datastruktur i listan. Ordna register över anställda är en fråga om omdisponering av pekare , i stället för att flytta stora mängder data runt för att helt enkelt ordna en lista .