Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
#include<stdio.h>
 
void Afficher()
{
static int x=0;
int y=0;
printf("x==%d, y==%d",x,y);
x++;
y++;
}
 
int main()
{
printf("-1-\n");
Afficher();
printf("-2-\n");
Afficher();
printf("-3-\n");
Afficher();
 
return 1;
}
le resultat est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
-1-
x==0, y==0
 
-2-
 
x==1, y==0
 
-3-
 
x==2, y==0
ma question est la suivante:
pourquoi il n'a pu eu destruction de la valeur de x après chaque appel de fonction et pourtant que x n'est pas une variable global??

et je ne sais pas si c'est l'occasion aussi de poser la question sur les différents type en C (je veux dire register, static, const...)???

merci d'avance!