perché i livelli di indirezione dei due elementi sono diversi.
Ovvero il primo rappresenta un intero e il secondo un puntatore ad intero e quindi non sono assegnabili l'uno all'altro (devono essere tutte mele o tutte pere)
Quindi ecco il motivo della mia domanda : perché invece nella funzione viene scritto *a = *b ?
Scusa ma sono un po' confuso.
()
Newbie
Messaggi: Iscritto:
Postato alle 17:27
Giovedì, 22/11/2012
Testo quotato
Postato originariamente da cicciomaz:
Ma allora potrei scrivere **a = **b
Quindi ecco il motivo della mia domanda : perché invece nella funzione viene scritto *a = *b ?
Scusa ma sono un po' confuso.
Il problema della confusione deriva dalla domanda iniziale. Non bisogna chiedersi perché *a=*b o perché **a=**b ma perché viene usata quella scrittura per risolvere un determinato problema
Ora, il problema da risolvere per cui è stata adottato quel codice qual è ?
Se il main lo modifichi in questo modo
Codice sorgente - presumibilmente C++
int main()
{
int x=5,y=6;
int*p, *q;
p =&x;
q =&y;
printf("%d %d\n", *p, *q);
swap(&p, &q);
printf("%d %d\n", *p, *q);
return0;
}
almeno si comprende cosa fa quella funzione.
Ultima modifica effettuata da il 22/11/2012 alle 17:28