Bonjour tout le monde
Je comprends pas pourquoi lorsqu'on soustrait une valeur à un pointeur on a comme résultat une adresse par exemple *(P-3)= 4200304
par contre si on fait *(P+3) on le 4ème élément du pointeur qui est affiché, comme dans mon exmeple
on remarque que *(P+3)=14
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> #define n 10 int main(int arv, char* arg){ int tab[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &tab[1], *q = &tab[5]; printf("*(p+3) = %d \n",*(p+3)); //14 printf("*(p-3) = %d \n",*(p-3)); // ? }
et *(P-2)= 4200304 !!pourquoi c'est pas 54
merci
Partager