Condividi tramite


Aggiunta di tipi di puntatori

Se uno degli operandi presenti in un'operazione di addizione è un puntatore a una matrice di oggetti, l'altro deve essere di tipo integrale. Il risultato è un puntatore dello stesso tipo del puntatore originale e che punta un altro elemento della matrice. Nel frammento di codice seguente è illustrato questo concetto:

short IntArray[10]; // Objects of type short occupy 2 bytes
short *pIntArray = IntArray;

for( int i = 0; i < 10; ++i )
{
    *pIntArray = i;
    cout << *pIntArray << "\n";
    pIntArray = pIntArray + 1;
}

Sebbene il valore integrale 1 venga aggiunto a pIntArray, questa operazione non è interpretabile come "aggiungere 1 all'indirizzo"; significa invece "modificare il puntatore affinché punti all'oggetto successivo della matrice" che si trova a 2 byte (o sizeof( int )) di distanza.

Nota

Il codice del form pIntArray = pIntArray + 1 si trova raramente nei programmi C++; per eseguire un incremento, sono preferibili i seguenti form: pIntArray++ o pIntArray += 1.

Vedere anche

Riferimenti

Espressioni con operatori binari