4° Anno TEORIA 2. Allocazione dinamica della memoria | Page 21

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
Operatore di differenza fra due puntatori
Definizione : L ' operatore di differenza fra puntatori richiede due operandi entrambi di tipo puntatore , aventi tipo base omogeneo ( per esempio due puntatori a intero , due puntatori a carattere , e via dicendo ). Il risultato della differenza è la differenza aritmetica fra i due indirizzi specificati dai puntatori , divisa per la dimensione del tipo base .
Per esempio , se p contiene l ’ indirizzo 1008 e q contiene l ’ indirizzo 1000 , ed entrambi sono puntatori al tipo intero e la dimensione di un INT è 4 byte , allora : q - p vale 2 ossia ( q – p ) / DimensioneDi ( INT ) = ( 1008-1000 )/ 4 = 8 / 4 = 2
Significato
L ' operazione di differenza fra puntatori è significativa se i due operandi contengono gli indirizzi di due celle diverse del medesimo array , e se il tipo base dell ' array coincide con quello dei due puntatori .
In questo caso , infatti , la differenza fra i due puntatori corrisponde al numero di celle ( distanza o offset ) dell ' array che separano la cella puntata dal puntatore di valore minore da quella del puntatore di valore maggiore .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 21