Dernier élément d'un tableau
Bonjour,
Programme pour inverser les éléments d'un tableau à l'aide de pointeurs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include<stdio.h>
int main(int argc, char *argv[])
{
int A[50];
int *P1,*P2,AIDE,N;
printf("entrer la dimension du tableau a (max.50) : ");
scanf("%d",&N);
for(P1=A;P1<A+N;P1++)
{
printf("element %d : ",P1-A);
scanf("%d",P1);
}
for(P1=A;P1<A+N;P1++)
printf("%d", *P1);
printf("\n");
for(P1=A,P2=A+(N-1);P1<P2;P1++,P2--)
{
AIDE=*P1;
*P1=*P2;
*P2=AIDE;
}
printf("tableau resultat : \n");
for(P1=A;P1<A+N;P1++)
printf("%d", *P1);
printf("\n");
return 0;
} |
Je ne comprends pas pourquoi on met P2=A+(N-1) dans la boucler de traitement et P1<A+N dans les autres boucles ?
Le dernier élément de A est A+N ou A+(N-1) ? P2 doit bien pointer sur le dernier élément de A ?