Programmeren in C++/Pointers: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
Minus navigatie |
bewerking |
||
Regel 23:
</pre>
De uitvoer zou kunnen zijn (verschilt per computer):
ShortVar: 5 Adres van shortVar: 0x8fc9:fff4 ▼
In dit geval heeft de variabele 'ShortVar' het adres '0x8fc9:fff4'. Dat betekent niets anders dan dat de geheugenplaats '0x8fc9:fff4' (en ook de drie daarop volgende geheugenplaatsen), met de naam 'shortVar' aangesproken kan worden. Dat is voor ons makkelijker dan steeds die hex-getallen te moeten gebruiken.
In een geheugenplaats kan ook informatie opgeslagen worden. In 'shortVar' zelf is het getal 5 opgeslagen. Maar we willen ook het adres van shortVar, dus het hex-getal '0x8fc9:fff4' ergens opslaan. Eigenlijk interesseert het ons niet welk hex-getal het is, dat hoeven we niet te weten, het gaat er alleen om dat het het adres van 'shortVar' is. We hebben dus een variabele nodig waarin je zo'n adres kunt opslaan. Zo'n variabele is een ''pointer''.
Een voorbeeld.
Regel 42 ⟶ 40:
</pre>
We
Wat kun je hier nou mee? Heel simpel je kunt nu met de pointer pAge, de waarde van myAge ophalen. Dit wordt indirectie genoemd. Let wel op, om de waarde op te halen moet je het sterretje(*) voor de pointer zetten, dus het wordt *pAge. Het sterretje(*) wordt ook wel de indirectie-operator genoemd.
|