Maison  >  Article  >  Quelle est l'utilité des variables statiques en langage C

Quelle est l'utilité des variables statiques en langage C

清浅
清浅original
2019-05-05 16:42:0420396parcourir

Le rôle des variables statiques en langage C est de garder la valeur inchangée lors de l'appel de fonction, car les variables statiques ont une fonction mémoire cependant, leur portée est limitée et n'est accessible que par les fonctions du module, etc. .

Quelle est l'utilité des variables statiques en langage C

Recommandé : "tutoriel c"

Le rôle des variables statiques en langage C est : statique variables Il a une fonction de mémoire et conserve la valeur inchangée pendant l'appel de la fonction ; la portée est limitée et n'est accessible qu'aux fonctions du module, etc.

Quelle est l'utilité des variables statiques en langage C

En langage C, le mot-clé static signifie statique et a trois fonctions évidentes :

1 Dans le corps de la fonction, les variables statiques ont un effet mémoire. , c'est-à-dire que la valeur d'une variable déclarée comme statique reste inchangée pendant le processus d'appel de cette fonction.

2. Au sein d'un module (mais en dehors d'une fonction), sa portée est limitée. Si une variable est déclarée statique, alors la variable est accessible par toutes les fonctions du module, mais elle n'est pas accessible aux autres. fonctions en dehors du module.

3. Les fonctions internes doivent être décrites et définies dans le fichier source actuel. Pour les fonctions pouvant être utilisées en dehors du fichier source actuel, elles doivent être décrites dans un fichier d'en-tête qui utilise ces fonctions. ce fichier d'en-tête.

Caractéristiques des données membres statiques :

1 Pour les données membres non statiques, chaque classe a sa propre copie. Les données membres statiques sont traitées comme des membres de la classe. Quel que soit le nombre d'objets de cette classe définis, il n'existe qu'une seule copie des données statiques membres dans le programme, qui est partagée et accessible par tous les objets de ce type.

2. Les données membres statiques sont stockées dans la zone de données globale. L'espace doit être alloué lors de la définition, il ne peut donc pas être défini dans la déclaration de classe. Étant donné que les données membres statiques sont partagées par tous les objets de cette classe, elles n'appartiennent pas à un objet de classe spécial. Lorsqu'aucun objet de classe n'est généré, sa portée est visible, c'est-à-dire que les programmeurs peuvent également l'utiliser lorsqu'aucune instance de la classe n'est générée. généré.

3. Les membres de données statiques se conforment également aux règles d'accès public, de protection et privé.

4. L'initialisation des variables membres statiques est en dehors de la classe et le mot-clé static ne peut pas être utilisé pour le moment. Bien que les membres statiques de private et protected puissent être initialisés en dehors de la classe, ils ne sont pas accessibles en dehors de la classe.

Avantages des membres de données statiques :

1. Les membres de données statiques n'entrent pas dans l'espace de noms global du programme, il n'y a donc aucune possibilité de conflit avec d'autres membres de données globaux. noms dans le programme.

2. La dissimulation des informations peut être réalisée. Les membres de données statiques peuvent être des membres privés, mais pas les variables globales.

#include<stdio.h>
#include <iostream>
#include "a.h"
using namespace std;
void fun(int i)
{    static int value = i++;
    cout<<value<<endl;
}int main()
{
    fun(0);
    fun(1);
    fun(2);    return 0;
}

Exécuter les résultats

0
0
0

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