Differenza tra puntatori

di il
3 risposte

Differenza tra puntatori

int u[4] = { 1,2,3,4} ;
int* p1=&u[1]; *p2=&u[3];
cout << p2-p1
cout << long(p2)-long(p1);
mi torna che la prima cout generi un 2 com risultato
non capisco come mai la seconda possa generare 8.
Viene eseguito un casting sul puntatore ?

3 Risposte

  • Re: Differenza tra puntatori

    Se fai così trasformi l'indirizzo contenuto nei puntatori in numeri interi con segno di tipo long...e la differenza algebrica tra questi due numeri è proprio 8
  • Re: Differenza tra puntatori

    Nella prima utilizzi l'aritmetica dei puntatori, nella seconda no.
  • Re: Differenza tra puntatori

    Grazie a tutti !
    capito perfettamente
Devi accedere o registrarti per scrivere nel forum
3 risposte