English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C / C ++Comment additionner deux entiers sans utiliser d'opérateurs arithmétiques ?

Les variables statiques sont des variables qui restent en mémoire pendant toute l'exécution du programme, c'est-à-dire que leur durée de vie est toute la durée d'exécution du programme. Cela diffère des variables automatiques, qui restent en mémoire uniquement pendant l'exécution de la fonction et sont détruites à la fin de la fonction.

Les variables statiques sont stockées dans le segment de données de la mémoire. Le segment de données fait partie de l'espace d'adresse virtuelle du programme.

Toutes les variables statiques qui ne sont pas explicitement initialisées ou initialisées à zéro sont stockées dans le segment de données non initialisé (également appelé segment BSS). En comparaison, les variables statiquement initialisées sont stockées dans le segment de données initialisé.

Voici un exemple :

static int x = 5;
static int y;
La variable statique x est stockée dans le segment de données initialisé et la variable statique y est stockée dans le segment BSS.

Voici un programme pour démontrer la variable statique en langage C-

Exemple

#include<stdio.h>
int func() {
   static int i = 4 ;
   i++;
   return i;
}
int main() {
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   return 0;
}

Voici la sortie du programme ci-dessus-

5
6
7
8
9
10

Maintenant, comprenons le programme ci-dessus.

dans cette fonctionfunc()i est initialisé à4La variable statique. Par conséquent, elle est stockée dans le segment de données initialisé. Ensuite, i est incrémenté et sa valeur est retournée. Voici le segment de code pour afficher ceci-

int func() {
   static int i = 4 ;
   i++;
   return i;
}

dans la fonctionmain()La fonctionfunc()appelée6deuxièmement, et retourne la valeur à imprimer de i. Comme i est une variable statique, elle reste en mémoire pendant l'exécution du programme et fournit une valeur cohérente. Voici le segment de code pour afficher ceci-

printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
Tutoriel PostgreSQL