Asdc 21 22 part3 Rappel Notion de pointeur et enregistrement CRappel Notion de pointeur ? Structure dynamique ? Une variable est dite statique si elle est déclarée dans un algorithme et associée à un identi ?cateur ? Elle est créée pendant la phase de com

Rappel Notion de pointeur et enregistrement CRappel Notion de pointeur ? Structure dynamique ? Une variable est dite statique si elle est déclarée dans un algorithme et associée à un identi ?cateur ? Elle est créée pendant la phase de compilation et l ? espace occupé en mémoire reste constant ? Son domaine de valeurs admises et les instructions qui peuvent être appliqués sont bien déterminés à l ? avance ? exemple ? Les types statiques ? de base ?? entier réel caractères booléen ? enregistrements CRappel Notion de pointeur ? Une variable est dite dynamique si elle est créée en cours d ? exécution ? Elles ne sont donc pas déclarées et ne sont donc pas repérées par des identi ?cateurs mais par des entités mémoires ou variables de type pointeur qui ne sont rien d ? autres que l ? adresse mémoire de la variable générée CRappel Notion de pointeur ? Dé ?nition ? Un pointeur est une variable qui contient l ? adresse d ? une autre variable dans la mémoire ? Les pointeurs sont typés si T dénote un type alors T dénote le type adresse d'un objet de type T ? Déclaration ? La déclaration d ? une variable de type pointeur se fait de la manière suivant ? En algorithmique Nom variable Type ? Exemple ? p p entier CRappel Notion de pointeur ? Nomvariable est la variable pointée par Nomvariable ? La déclaration d ? une variable de type pointeur ne réserve pas un espace mémoire pour la variable pointée CRappel Notion de pointeur ? Opérations sur les pointeurs ? L ? a ?ectation d ? un pointeur p à un pointeur p de même type que p p p Type p p ? l'addition d'un entier à un pointeur Le résultat est un pointeur de même type que le pointeur de départ p p Type n entier p p n CRappel Notion de pointeur ? la soustraction d'un entier à un pointeur Le résultat est un pointeur de même type que le pointeur de départ p p Type n entier p p-n ? la di ?érence de deux pointeurs pointant tous deux vers des objets de même type Le résultat est un entier p p Type n entier n p -p Notons que la somme de deux pointeurs n'est pas autorisée CRappel Notion de pointeur ? Allocation ? La fonction nouveau T permet de réserver une zone mémoire de taille égale à la taille d ? une variable de type T ? La fonction renvoie l ? adresse de cette zone mémoire qui sera sauvegardée dans une variable de type pointeur sur T ? Exemple ? p nouveau entier ? Destruction ? La fonction liberer p permet de libérer la zone mémoire dont l ? adresse se trouve dans p ? Exemple ? liberer p CRappel Les pointeurs en C ? Déclaration ? type nom de var ? Exemple déclaration d'un pointeur sur int ? int p ? Initialisation avec NULL ?

  • 39
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager