Addition de types pointeur
Si l'un des opérandes d'une addition est un pointeur vers un tableau d'objets, l'autre doit être de type intégral. Le résultat est un pointeur qui est du même type que le pointeur d'origine et qui pointe vers un autre élément de tableau. Le fragment de code suivant illustre ce concept :
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;
}
Bien que la valeur intégrale 1 soit ajoutée à pIntArray, cela ne signifie pas « ajouter 1 à l'adresse ». Cela signifie plutôt « ajuster le pointeur pour qu'il pointe vers l'objet suivant du tableau », qui se trouve à une distance de 2 octets (ou sizeof( int )).
Notes
Le code du formulaire pIntArray = pIntArray + 1 figure rarement dans les programmes C++. Pour effectuer un incrément, il est préférable d'opter pour les formulaires pIntArray++ ou pIntArray += 1.