© BEN HAMIDA Sana 1
TD : Les pointeurs
Exercice 1 :
Soit le programme suivant :
main ( )
{ int A = 1 ;
int B = 2 ;
int C = 3 ;
int *p1, *p2 ;
p1= &A ;
p2 = &C ;
*p1 = (*p2) ++ ;
p1 = p2 ;
p2 = &B ;
*p1 - = *p2 ;
++ *p2 ;
*p1 * = *p2 ;
A = ++ *p2 * *p1 ;
p1 = &A ;
*p2 = * p1/ = *p2 ;
return 0 ;
}
Complétez le tableau suivant pour chaque instruction du programme ci-dessus :
A B C P1 P2
Initialisation 1 2 3 / /
p1 = &A 1 2 3 &A /
p2 = &C
*p1 = (*p2) ++
p1 = p2 ;
p2 = &B
© BEN HAMIDA Sana 2
*p1 - = *p2
++ *p2
*p1 * = *p2
A = ++ *p2 * *p1
p1 = &A
*p2 = * p1/ = *p2
Exercice 2 :
Soient les déclarations suivantes :
int A[ ] = {12, 23, 34, 45, 56, 67, 78, 89, 90} ;
int * P ;
P = A ;
Quels sont les résultats fournis par ces expressions :
*P + 2
*(P+2)
&P + 1
&A [4] – 3
A + 3
&A [7] – P
P + (*P – 10)
*(P+ * (P + 8) – A [7] )
Exercice 3 :
Écrire une fonction qui prend un tableau d'entiers, un entier n et un double pointeur vers un
tableau d'entiers. La fonction doit allouer dynamiquement un nouveau tableau d'entiers de taille
n, le remplir avec les n premiers éléments du tableau d'entiers d'entrée, et stocker l'adresse de
ce nouveau tableau dans le double pointeur.
Exercice 4 :
Implémenter une pile avec deux pointeurs précédant et suivant.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !