Bases de la programmation en C
int f(void) {
static int s = 0;
int a = 0;
s++;
a++;
return s * 10 + a;
}Lorsque la fonction f ci-dessus est appelée trois fois de suite, quelle est la valeur de retour du troisième appel ?
- A11
- B13
- C31
Afficher la réponse et l'explication
Réponse : C. 31
La variable locale s, déclarée static, n'est initialisée à 0 qu'une seule fois, avant le début du programme, et garde sa valeur après le retour de la fonction. s prend donc les valeurs 1, 2 et 3 au fil des appels. a, sans static, est créée à nouveau à chaque appel et part de 0 : elle vaut 1 à chaque fois. La valeur de retour du troisième appel est 3 × 10 + 1 = 31.
Continuer : 9 autres questions sur Bases de la programmation en C