« Programmation C++/Les pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 88 :
Dans l'exemple 2, la différence d'adresse est de 20 octets (<code>5 * sizeof(int)</code>).
Cela montre que l'adresse contenue dans le pointeur est toujours incrémentée ou décrémentée d'un multiple de la taille d'un élément (<code>sizeof *ptr</code>).
 
====Opération utilisant deux pointeurs====
La seule opération valable (ayant un sens) utilisant deux pointeurs de même type est la soustraction ( <code>-</code> ) donnant le nombre d'éléments entre les deux adresses.
Elle n'a de sens que si les deux pointeurs pointent dans le même tableau d'éléments.
 
Exemple :
char str[]="Message ou rechercher des caractères.";
char *p1 = strchr(str,'a'); // recherche le caractère 'a' dans str
char *p2 = strchr(str,'è'); // recherche le caractère 'è' dans str
cout << "Nombre de caractères de 'a' à 'è' = " << (p2-p1) << endl;
// affiche : Nombre de caractères de 'a' à 'è' = 28
 
===Pointeur constant et pointeur vers valeur constante===