Leçon 19 : Arithmétique des pointeurs et tableaux
On peut faire du calcul sur les pointeurs — mais un calcul intelligent : p + 1 n'avance pas d'un octet, mais d'un élément entier, c'est-à-dire de sizeof(type) octets. C'est ici que se dévoile le grand secret des tableaux : le nom du tableau 'décroît' (decay) vers l'adresse du premier élément — arr,
Un tableau est une rangée de boîtes accolées dans une rue. Le nom du tableau est l'adresse de la première boîte, et p + 1 signifie 'saute à la boîte suivante' — peu importe la largeur en centimètres de chaque boîte, le saut est toujours exactement une boîte entière.
- arithmétique des pointeurs
- Addition et soustraction sur des pointeurs. p + 1 avance jusqu'à l'élément suivant, pas jusqu'à l'octet suivant.
- pas d'élément
- p + 1 ajoute sizeof(type) octets à l'adresse — pour un int (4 octets) : de 1000 à 1004.
- décroissance de tableau
- Dans la plupart des expressions, le nom d'un tableau devient l'adresse de son premier élément : arr == &arr[0].
- l'identité arr[i] == *(arr + i)
- L'indexation est un raccourci pour l'arithmétique : sauter i éléments depuis le début et accéder à la valeur.
- parcours avec un pointeur
- Une boucle qui avance un pointeur à travers le tableau : while (p < arr + n) { ...; p++; }.