Stap 3: Waarbij een Pointer
In het voorbeeld in het eerste gedeelte was erg basic kijken hoe te verklaren een pointer.Een pointer variabele, die heeft niet anders intialized bevat een onbekende waarde. U kunt een pointer variabele met een adres van een variabele van hetzelfde type initialiseren met behulp van de ampersandoperator (&).
char cSomeChar = "a";
char * pChar;
pChar = & someChar;
In dit fragment heeft de variabele cSomeChar sommige adres. Omwille van het argument, laten we zeggen dat C++ het het adres 0x1000 toegewezen. (C++ geïnitialiseerd ook die locatie met het karakter 'a'.) De variabele pChar heeft ook een locatie van eigen, misschien 0x1004. De waarde van expressie & someChar is 0x1000, het type is de char * (Lees "pointer naar teken"). De toewijzing op de derde regel van het voorbeeld van het fragment wordt zo de waarde 0x1000 opgeslagen in de variabele pChar.
Neem een minuut om echt te begrijpen de drie lijnen van C++-code. De eerste verklaring zegt, "uitgaan en vinden van de locatie van een 1-byte, toewijzen de naam cSomeChar en het initialiseren om 'a'." In dit voorbeeld geplukt C++ de locatie 0x1000.
De derde regel zegt, "het adres van cSomeChar (0x1000) toewijzen aan de variabele pChar."
"So what?" u zegt. Hier komt het echt leuke gedeelte aangetoond in de volgende expressie:
* pChar = "b";
Deze regel zegt, "slaan een 'b' op de locatie van de char wees op door pChar." Voor het uitvoeren van de expressie, wordt de waarde opgeslagen in pChar (dat zou 0x1000) eerst opgehaald door C++. Vervolgens wordt het teken 'b' op die locatie opgeslagen.
De * bij gebruik als een binaire operator betekent "multiply"; Wanneer gebruikt als een unaire operator, * middelen "vinden het ding, wees op door...". Evenzo & heeft een betekenis als een binaire operator (die ik niet bespreken), maar als een unaire operator, het betekent "het adres van...".