En av de mer svåra begrepp som en utvecklare att lära sig C datorspråk måste lära sig är pekare , en viktig konstruera i C som avsiktligt saknas nyare språk som Java och Ruby . I alla språk , programmerare deklarera variabler som refererar till platser i minnet där data lagras . De kan sedan använda det enkla namnet tilldelats den variabeln för att hämta och ändra data i minnet . Men i C , kan programmerare gå ett steg längre och få tillgång till minne vända sig . Detta gör att vissa verksamheter att bli snabbare och ger en viss makt , men kan också ge allvarliga fel om de används vårdslöst
1
Klistra in följande kod i din favorit editor C : .
int adress ,
int-värde ,
värde=15 ;
adress= value;
I denna kod finns två heltal skapas : adress och värde . Värdet är tilldelat numret 15. Då är adressen tilldelas en " referens " ( det är vad " " betyder ) till värde : ett heltal som innehåller den exakta platsen i minnet där uppgifter för värdet lagras . Variabeln " adress " är känd som en pekare , eftersom stället data innehåller den en adress till en annan variabel . Du kan säga det " poäng " till den andra variabeln , därav namnet
2
Klistra in följande kod i din favorit editor C " pekare ".
cout
cout <* adress ,
Eftersom " adress " är en pekare kommer adressen av värde att skrivas till skärmen . Det är omöjligt att förutse vad detta nummer kommer att bli, eftersom det kommer att hänvisa till en minnesplats som valts vid körning . Innehåller dock andra raden en " * , " de " dereference operatören . " Detta kommando används för att ange att du vill hämta värdet lagras på den adress som refereras av en pekare . Så kommer det ut " . 15 "
3
Klistra in följande och , innan du läser vidare , försöka förutse vad som kommer att skrivas ut :
cout <* adress ,
värde=22 ;
cout <* adress ;
Om du sa, " 15 " och " 22 ", skulle ni ha rätt . " Adress " inte innehar det faktiska värdet , berättar det helt enkelt var datorn ska leta . Så , om värdet lagras i adressen ändras , dereferencing pekaren kommer att ge den nytt värde. Detta fungerar också i omvänd :
* adress=32 ;
cout
Detta skriver siffran " 32 . " Du kan förhoppningsvis börja se både kraften och faran av pekare : Den lät dig att ändra innehållet i en variabel utan att någonsin komma åt variabeln
4 . .
Klistra in följande :
int second_address=adress + + ;
* second_address=10 ;
Här är en annan pekare deklareras som heter " second_address . " Det är då tilldelas samma värde som den första adressen plus ett , och skriver data för integer " 10 " till den adressen . Återigen kan du se kraften och faran av pekare . Hellre än att be C att ge dig en del av minnet som anses vara fria , har du bara manuellt skriven data till en minnesplats som kanske eller kanske inte vara i bruk .
Previous:nothing Next:hur man fångar en skärm i VB