Pointeurs en langage C
Définition
- Un pointeur est une variable spéciale qui peut contenir l'adresse d'une autre variable.
- En C, chaque pointeur est limité à un type de données. Il peut contenir l'adresse d'une variable de ce type.
- Si un pointeur P contient l'adresse d'une variable A,on dit que 'P pointe sur A'.
Intérêts
- En C, l'utilisation de pointeurs est incontournable car ils sont étroitement liés à la représentation et manipulation des tableaux
- Les principales intérêts des pointeurs résident dans la possibilité de :
- Allouer de la mémoire dynamique sur le TAS(1), ce qui permet la gestion de structures de taille variable. Par exemple, tableau de taille variable.
-
- Permettre le passage par référence pour des paramètres des fonctions
-
- Réaliser des structures de données récursives (listes et arbres)
-
: Tas (ou heap) est une zone d’allocation dynamique , qui est une réserve de mémoire dans laquelle le programme peut puiser en cours d’exécution grâce à des fonctions prédéfinies (voir suite)
Déclaration et initialisation d’un pointeur
Déclaration
-
- Un pointeur est une variable dont la valeur est égale à l’adresse d’une autre variable. En C, on déclare un pointeur par l’instruction :
type *nom_du_pointeur ;
où
-
-
- type est le type de la variable pointée,
- l’identificateur nom_du_pointeur est le nom de la variable pointeur et
- * est l’opérateur qui indiquera au compilateur que c’est un pointeur.
-
On dira que :
p est un pointeur sur une variable du type short, ou bien
*p est de type short, c’est l’emplacement mémoire pointé par p.
Remarques :
-
-
- A la déclaration d’un pointeur p, il ne pointe a priori sur aucune variable précise : p est un pointeur non initialisé.
- Toute utilisation de p devrait être précédée par une initialisation.
-
-
- la variable pointeur est représentée en mémoire soit sur 16 bits, 32 bits ou 64 bits.
- L’interprétation de la valeur d’une variable pointeur p :
Si p pointe sur une variable de type char Alors sa valeur donne l’adresse de l’octet ou cette variable est stockée.
Si p pointe sur une variable de type short Alors sa valeur
donne l’adresse du premier des 2 octets où la variable est stockée Si p pointe sur une variable de type float Alors sa valeur
donne l’adresse du premier des 4 octets où la variable est stockée
Initialisation
Pour initialiser un pointeur, le langage C fournit l’opérateur unaire &. Ainsi pour récupérer l’adresse d’une variable A et la mettre dans le pointeur P ( P pointe vers A ), on écrit :
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.