Cours en Devlopement Informatique

  • Langage C

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'.

 

 1%

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 ;

      • 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.
    • Exemple :        short *p;

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.