bonjour à tous,
je suis entrain d'apprendre le C.
mais je ne comprend pas un truc.
voici le code:
une variable static ne se modifie pas dans le programme si j'ai bien compris. alors comment expliquez vous qu'à la compilation la variable static_var s'incrémente?
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 #include <stdio.h> void function() { int var = 5; static int static_var = 5; printf("\t[in function] var = %d\n", var); printf("\t[in function] static_var = %d\n", static_var); var++; //ajouter 1 à var static_var++; //ajouter 1 à static_var } int main(){ //La fonction main, avec son propre contexte. int i; static int static_var = 1337; // for(i=0; i<5; i++){ //Boucle 5 fois printf("[in main] static_var = %d\n", static_var); function(); //Appeler la fonction. } }
je n'arrive pas à comprendre pourquoi la variable var (de la fonction) qui n'est pas statique, elle, ne s'incrémente pas et static_var ( de la fonction) qui est supposé être statique s'incrémente.[in main] static_var = 1337
[in function] var = 5
[in function] static_var = 5
[in main] static_var = 1337
[in function] var = 5
[in function] static_var = 6
[in main] static_var = 1337
[in function] var = 5
[in function] static_var = 7
[in main] static_var = 1337
[in function] var = 5
[in function] static_var = 8
[in main] static_var = 1337
[in function] var = 5
[in function] static_var = 9
Merci de m'aider à comrendre cela.
cordialement,
MacMini
Partager