Maison  >  Article  >  développement back-end  >  Expliquer le cycle de vie des variables en langage C

Expliquer le cycle de vie des variables en langage C

WBOY
WBOYavant
2023-09-02 19:37:071564parcourir

Expliquer le cycle de vie des variables en langage C

Les classes de stockage spécifient la portée, le cycle de vie et la liaison des variables.

Pour définir complètement une variable, il faut mentionner non seulement son "type" mais aussi sa classe de stockage.

Un nom de variable identifie un emplacement physique dans la mémoire de l'ordinateur où un ensemble de bits est alloué pour stocker la valeur de la variable.

La classe de stockage nous indique les facteurs suivants -

  • Où sont stockées les variables (dans la mémoire ou dans les registres du CPU) ?
  • S'il n'y a pas d'initialisation, quelle est la valeur initiale de la variable ?
  • Quelle est la portée d'une variable (la portée dans laquelle la variable est accessible) ?
  • Quel est le cycle de vie d'une variable ?

Durée de vie

La durée de vie d'une variable définit la durée pour laquelle l'ordinateur lui alloue de la mémoire (la durée entre l'allocation et la désallocation de mémoire).

En langage C, les variables peuvent avoir un cycle de vie automatique, statique ou dynamique.

  • Automatique - Créez des variables avec un cycle de vie automatique. À chaque fois, leur manifeste a été rencontré et détruit. De plus, leurs blocs sortiront également.
  • static - Une variable est créée la première fois que la déclaration est exécutée. Il est détruit lorsque l'exécution s'arrête/se termine.
  • Dynamique - La mémoire variable est allouée et libérée via des fonctions de gestion de la mémoire.

Classes de stockage

Il existe quatre classes de stockage en langage C -

Automatique Mémoirejusqu'à ce que le contrôle reste dans le blocjusqu'à ce que le contrôle reste dans le bloclocalautomatiqueRegistresCPU enregistregarbage valuelocal Inscription mémoireExterne ExempleCe qui suit est le programme C pour la classe de stockage automatique- Démo en directSortieLorsque le programme ci-dessus est exécuté, la sortie suivante est produite- tr>
3 2 1
Exemple
Classes de stockage Zone de stockage Valeur initiale par défaut Cycle de vie Portée Mots clés
jusqu'à ce que le contrôle reste dans le bloc
statique zéro valeur entre les appels de fonction valeur poubelle exécution du programme entier Global
#include<stdio.h>
main ( ){
   auto int i=1;{
      auto int i=2;{
         auto int i=3;
         printf ("%d",i)
      }
      printf("%d", i);
   }
   printf("%d", i);
}

Ce qui suit est le C programme pour la classe de stockage externe Programme -

Démonstration en direct

#include<stdio.h>
extern int i =1; /* this &lsquo;i&rsquo; is available throughout program */
main ( ){
   int i = 3; /* this &lsquo;i&#39; available only in main */
   printf ("%d", i);
   fun ( );
}
fun ( ) {
   printf ("%d", i);
}

Sortie

Lors de l'exécution du programme ci-dessus, la sortie suivante sera produite -

3 1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer