Maison  >  Article  >  développement back-end  >  Quelle est la différence entre les variables statiques, automatiques, globales et locales en C et C ?

Quelle est la différence entre les variables statiques, automatiques, globales et locales en C et C ?

DDD
DDDoriginal
2024-11-02 17:34:02947parcourir

What's the Difference Between Static, Auto, Global, and Local Variables in C and C  ?

Comprendre les variables statiques, automatiques, globales et locales en C et C

Lorsque vous travaillez avec des variables en C et C, il est essentiel de saisir les nuances entre les variables statiques, automatiques, globales et locales. Cette distinction concerne à la fois leur accessibilité et leur durée de vie dans le programme.

Variables locales

Les variables locales, parfois appelées variables de « portée de bloc », habitent le bloc de code dans lequel ils sont déclarés. Ces variables n'existent qu'à l'entrée dans le bloc et cessent d'exister à sa sortie. Illustrant ce concept :

void f() {
    int i; // Local variable
    i = 1; // Accessible within f()
}

Variables globales

Les variables globales possèdent une "portée de fichier" (en C) ou une "portée d'espace de noms" (en C). Elles sont accessibles depuis n'importe quel point du programme suite à leur déclaration, comme indiqué ici :

int i; // Global variable
void f() {
    i = 1; // Accessible anywhere
}

Variables automatiques

Variables automatiques, dites « durée de stockage automatique " variables, résident localement. Leur existence est limitée à la durée du bloc qu'ils habitent. A la sortie du bloc, ces variables sont détruites et réapparaissent lors de la rentrée dans le bloc.

for (int i = 0; i < 5; ++i) {
    int n = 0; // Automatic variable
    printf("%d ", ++n); // Value of n is reset to 0 each iteration
}

Variables statiques

Variables statiques, d'autre part D'autre part, profitez de durées de vie prolongées au sein du programme (appelées « durée de stockage statique »). Même lorsque le contrôle sort de leur champ d'application, leurs valeurs perdurent.

for (int i = 0; i < 5; ++i) {
    static int n = 0; // Static variable
    printf("%d ", ++n); // Value of n persists across iterations
}

En conclusion, comprendre les distinctions entre ces types de variables permet une programmation plus efficace et ciblée en C et C . Comprendre leur portée et leur durée de vie permet aux développeurs de choisir le type de variable approprié pour leurs besoins spécifiques.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn