pointers

Status
Niet open voor verdere reacties.

william-nagels

Gebruiker
Lid geworden
22 apr 2007
Berichten
38
hoi,

Ik zit met een verwarde geest:( :

Waarom zou je eigenlijk een pointer gebruiken? :o
Kan je niet evengoed een referentie gebruiken?

Een beetje hulp voor deze verwarde geest zou leuk zijn :)





William:cool:
 
Moet je me eerst even vertellen wat een referentie is....

Pointers gebruik je als je geheugen dynamisch alloceert. Ofwel, tijdens het draaien van het programma vraag je pas ruimte aan voor de variabele. Doe je in de regel omdat je vooraf niet weet hoeveel ruimte je nodig hebt.
Daarnaast is C(++) een nogal pointerige taal. Heel handig af en toe, en vaak uiterst omslachtig.
 
er is een klein verschil tussen pointers en references.

Een reference neemt zelf geen plaats in het geheugen in, maar wanneer je een reference gebruikt wordt het geheugenadres van de variabele waarnaar je verwijst opgevraagd. Elke keer je een reference schrijft, wordt dat adres opnieuw opgevraagd, wat wel wat CPU verbruikt voor de berekening..

Een pointer daarintegen IS een variabele met als inhoud het adres van een andere variabele. Daardoor wordt het adres van de variabele die je gebruikt slechts 1maal opgevraagd.

Bovendien kan je zoals Palmpje schrijft pointers gebruiken om blokken in het geheugen te reserveren. Dan kan je later in dat blok een variabele steken. Zo maak je je variabelen enkel aan op momenten waarop jij ze nodig hebt. Om een referentie te gebruiken (een referentie is het opvragen van een adres) moet er al een variabele aanwezig zijn.

Dus nog een samengevat:
referentie = functie met returnwaarde het adres van een variabele
pointer = variabele met inhoud = adres van een andere variabele (bestaand of onbestaand)

--Johan
 
hoi,

ik zie wat licht aan het einde van de tunnel.
Dus als ik het goed begrijp is een reference eigenlijk een andere naam voor die variable?
En een pointer een variable die je op het moment zelf aan maakt? :confused:


william
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan