Wat gebeurt er als we & vóór een aanwijzer gebruiken?

The book doesn't really say about what & in front of a pointer gives. enter image description here

6
^^ ... maar hetzelfde als het adres waar het adres is opgeslagen.
toegevoegd de auteur John Zwinck, de bron
Het belangrijkste om over pointers te leren is dat er niets speciaals is aan pointers.
toegevoegd de auteur molbdnilo, de bron
Je boek zegt echt precies wat het geeft - er staat 'Adres van de aanwijzer variabele p' op de pagina.
toegevoegd de auteur molbdnilo, de bron
& p geeft het adres van p . Aangezien p in uw voorbeeld van het type int * is (dwz pointer naar int ), geeft & p een resultaat van type int ** (dus wijzer naar een pointer naar int ), daarom werkt de toewijzing p1 = & p . * p1 geeft een resultaatequivalent (zelfde waarde en hetzelfde type) aan p , en ** p1 geeft de waarde aangeduid door < code> p - wat de variabele a is met de waarde 125 .
toegevoegd de auteur Peter, de bron
^^ ... niet te verwarren met het adres dat in de aanwijzer is opgeslagen.
toegevoegd de auteur WhozCraig, de bron
Het geeft je het adres waar de aanwijzer is opgeslagen.
toegevoegd de auteur Osiris, de bron

6 antwoord

a = int variable
p = address of a
pl = address of p
*p = a
*pl = p
**pl = a
3
toegevoegd
Dank aan de intelligente gebruiker voor het stemmen op een lager pitje. Ik heb de rest van de antwoorden overgenomen. Ik denk dat het bereiken van goddelijke intelligentieniveaus dergelijke activiteiten verplicht.
toegevoegd de auteur luci88filter, de bron

Wanneer u een waarde in een variabele opslaat:

a = 125

een waarde van 125 wordt ergens in het geheugen opgeslagen

p = &a

p krijgt het adres van de geheugenlocatie waar a is opgeslagen.

pl = &p

Ten slotte krijgt pl het adres in het geheugen waar de aanwijzer zelf is opgeslagen.

So & is giving you the address of the memory location. As your book is showing you.

3
toegevoegd

For example: you have an integer variable x, in this variable you have the value 52. But to know where you have the address in memory of this variable you use &x, that will point to the address where the variable is stored in memory.

Als u de waarde wilt die is opgeslagen in een adres van geheugen y , gebruikt u * y .

2
toegevoegd

slaat het adres van een in pointer variabele op p

quick Google search: https://www.tutorialspoint.com/cprogramming/c_pointers.htm

1
toegevoegd
Het gebruik van '&' doet geen opslag . Wees voorzichtig met hoe je je antwoorden uitdrukt.
toegevoegd de auteur SamTebbs33, de bron

The book doesn't really say about what & in front of a pointer gives

The book says exactly what & in front of a pointer gives: "Address of pointer variable p".

Zoals u kunt zien aan de verklaring van pl , heeft het type int ** .

Een aanwijzer kan naar elk type (of geen, voor void * ) wijzen en deze wijst naar een andere aanwijzer.

0
toegevoegd

& in front of a variable yields the address of the variable.
& in front of a pointer   yields the address of the variable.

0
toegevoegd