Bonjour,

Programme pour inverser les éléments d'un tableau à l'aide de pointeurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?