Det som forvirrer mig er denne sætning i begyndelsen af koden:
int *pAge = &Age;
siger man ikke at *pAge peger på &Age som er adressen (i hexadecimal), derfor hvis man udskriver *pAge, som jeg havde gjort burde jeg få adressen og ikke værdien?
Hvordan kan den udskrive 54, når pointeren peger på variablens adresse?
En adresse er en adresse. Ikke noget med hexadecimalt.
En variabel er et område i hukommelsen af en vis størrelse afhængig af variablens type.
int Age = 57;
Dette er en variabel af typen 'int'. En int fylder (afhængig af maskinen) 32 bits og indeholder et tal, i dette tilfælde 57.
int * pAge;
...er en pointer, altså en adresse i hukommelsen som indeholder en adresse. Den fylder (igen afhængig af maskinen) også 32 bits.
pAge = &Age;
Her lægges Age variablens adresse over i pAge.
De to variable ligger to forskellige steder i hukommelsen.
Vil du skrive indholdet af en variabel ud, gør du følgende:
cout << Age;
Her skrives indholdet af Age variablen, som er tallet 57.
cout << pAge;
Her skrives indholdet af pAge variablen, som er en adresse.
cout << *pAge;
Her skrives det, som pAge peger på, som er Age adressen, som indeholder tallet 57.
Pointere tager lidt tid at forstå. Se evt "Pointer fun with Binky", som er en forklaring af pointer begrebet med en frygteligt grim ler mand:
http://www.youtube.com/watch?v=6pmWojisM_EGanske underholdende.