Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1:
Les pointeurs
Définition
Un pointeur est une variable qui contient une adresse d’une autre variable.
La variable pointée par un pointeur est dite variable référencée ou bien pointée.
pointeur variable
2
27/02/2023
Remarques
Un pointeur est associé à un type de variable sur lequel il peut pointer. Par exemple,
un pointeur sur entier ne peut pointer que sur des variables entières.
Déclaration
Par convention, les pointeurs commencent par la lettre p. Il faut déclarer le type de la
variable pointée.
Syntaxe:
nom_ptr : Type_de_base ou nom_ptr : ^Type_de_base
4
27/02/2023
Application 1
Soit v une variable de type réel et p un pointeur sur réel.
Quelle instruction écrire pour que p pointe sur v?
6
27/02/2023
Application 2
Soit l’algorithme suivant:
Algorithme Exemple
Var
n : entier
p : entier
début
n 35
p adresse de n
écrire(*p )
*p 30
fin
Donner le résultat d’exécution de cet algorithme.
Un pointeur qui n'est pas initialisé ne pointe pas nulle part mais n'importe où.
Si on veut que le pointeur ne pointe nulle part, il faut l'initialiser à NIL (Not Identified
Link) ou NULL (en C/C++).
Exemple :
p : entier
8
27/02/2023
Application 3
Compléter le tableau suivant.
Instructions N X P
N20
P adresse de N
X *P
*P 30
P adresse de X
Exemple :
p: Date
p-> jour 20
écrire (p-> mois)
10
27/02/2023
Exemple
Type etudiant = enregistrement
Id :entier
Cin :entier
Nom : chaine[1..10]
Groupe : chaine[1..6] }
finEnreg
Var Etud :etudiant
Petud : !etudiant
Début
Etud.cin 00348799
Etud.nom ‘’Mohamed’’
Petud adresse de etud
Ecrire(petud->nom)
Ecrire(petud->cin)
Fin
11
Exercice
Écrire une procédure qui permet de permuter 2 étudiants en utilisant 2 pointeurs sur
étudiants.
12
27/02/2023
Exercice
Écrire une procédure qui permet de permuter 2 étudiants en utilisant 2 pointeurs sur
étudiants.
PROCEDURE PermutEtudiant (p1 : ↑etudiant, p2 : ↑ etudiant)
VAR
Aux: etudiant
DEBUT
Aux P1 ↑
p1 ↑ P2 ↑
P2 ↑ Aux
FIN
13
LIBERER : est une procédure qui permet la libération de l’espace mémoire pointé
par le pointeur donné en paramètre
14
27/02/2023
Exercice
Ecrire un algorithme de permutation de 2 entiers faisant appel à une procédure PERMUT.
VAR
C: entier
DEBUT
C<― *A
*A <―*B
*B<―C
FIN
15
Version1 Version2
ALGORITHME PERMUTATION ALGORITHME PERMUTATION
VAR VAR
X : entier X : ↑entier
Y : entier Y : ↑ entier
DEBUT DEBUT
ECRIRE (« Donner 2 entiers ») x← ALLOUER ()
LIRE (X, Y) Y←ALLOUER ()
PERMUT (↑X, ↑ Y) ECRIRE (« Donner 2 entiers »)
LIRE (*X, *Y)
PERMUT(X, Y)
FIN PERMUTATION FIN PERMUTATION
16
27/02/2023
Par contre, une réservation statique permet d’occuper l’espace mémoire durant la durée de
vie de programme et le taux d’occupation n’est pas toujours de 100% ce qui implique une
perte de l’espace mémoire.
17