|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
C doppi puntatori
c'è un esempio sui doppi puntatori che proprio non riesco a capire..
Codice:
int arr[10]; int x; int *p1, *p2; int **pp; int i; x=3; for(i=9; i>=0; i--) arr[i]=10-i; pp=&p1; p1=&x; p2=arr; *pp=p2+**pp; printf(**pp+*p2); nn capisco perchè a questa riga il puntatore **pp prende valore 7.. con *pp indichiamo l'indirizzo di p1? e con **pp il valore di x? grazie.. |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Re: C doppi puntatori
Quote:
Nel tuo caso sommi 3 al puntatore al primo elemento dell'array; il risultato netto è un puntatore che punta all'elemento arr[3] (ovvero 7).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Re: C doppi puntatori
Quote:
Dove hai trovato questo esempio contorto? Di sicuro non ti aiuta a imparare come funzionano le cose...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jul 2002
Messaggi: 65
|
Edit: gia spiegato da sens!
![]() Ultima modifica di gyborg : 08-11-2004 alle 15:04. |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Re: Re: C doppi puntatori
Quote:
![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:48.