Previous Next Up Index Contents

Exercice 9.3

Solution: En traitant des tableaux à l'aide de pointeurs, nous utilisons souvent des expressions de la forme:

for (P=A ; P<A+N ; P++)

ou
for (P=CH ; *P ; P++)
{

{
...

...
}

}

ou les versions analogues avec while.

Dans ces boucles, le pointeur P est incrémenté à la fin du bloc d'instruction et comparé ensuite à la condition de la boucle. Au moment où la condition est remplie, P pointe déjà à l'extérieur du tableau; plus précisément sur le premier élément derrière le tableau.

Exemple:

#include <stdio.h>
main()
{
 /* Déclarations */
 int A[10]; /* tableau */
 int *P;    /* pointeur dans A */

 /* Saisie des données */
 printf("Introduire 10 entiers : \n");
 for (P=A; P<A+10; P++)
      scanf("%d", P);
 /* Affichage du tableau */
 printf("Tableau donné A :\n");
 for (P=A; P<A+10; P++)
     printf("%d ", *P);
 printf("\n");
 return 0;
}
 
A la fin des boucles, P contient l'adresse A+10 et pointe donc sur l'élément A[10] qui ne fait plus partie du tableau.


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber