Différence de deux pointeurs

Il est possible d'utiliser l'opérateur de soustraction pour calculer la différence de deux pointeurs. Cela n'a de sens que si les deux pointeurs repèrent des éléments d'un même tableau.

Soient p1 et p2 deux pointeurs du même type tels que p1 repère le i$^{eme}$ élément d'un tableau, et p2 repère le j$^{eme}$ élément du même tableau, p2 - p1 est une valeur de type ptrdiff_t qui est égale à j - i. Le type ptrdiff_t est défini dans le fichier d'include stddef.h En pratique, une variable de type ptrdiff_t pourra être utilisée comme une variable de type int. La norme précise qu'il est valide de calculer la différence de deux pointeurs à condition que tous deux repèrent des éléments d'un même tableau, ou l'élément (fictif) après le dernier élément du tableau.



Matthieu Moy 2017-02-08