Pointeur de l'addition et de la taille de l'élément

: http://www.fredosaurus.com/notes-cpp/arrayptr/26arraysaspointers.html

Sous: Pointeur de l'addition et de la taille de l'élément

Il y a le code suivant:

//Assume sizeof(int) is 4.
int b[100];  //b is an array of 100 ints.
int* p;      //p is a a pointer to an int.
p = b;       //Assigns address of first element of b. Ie, &b[0]
p = p + 1;   //Adds 4 to p (4 == 1 * sizeof(int)). Ie, &b[1]

Comment "p" dans la dernière ligne devenir "4"?

Grâce.

Notez qu'il n'est pas toujours 4. C'est juste que sur la plupart des modernes 32/64 bits des systèmes sizeof(int) est de 4. Mais sur plus exotiques les plates-formes, il pourrait être n'importe quoi, d'où "assumer sizeof(int) est de 4" commentaire.
Pas vraiment ésotérique systèmes. Je pense que Arduino processeurs ont sizeof(int) est de 2

OriginalL'auteur Simplicity | 2011-01-23