Fonction alterne (Problème de compréhension)
Bonsoir je débute dans le c++ et je vois actuellement les fonctions , dans mon livre Programmer en langage c++ de Claude delannoy il y à un code qui est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <iostream>
using namespace std;
int & alterne(int &, int &);
int main()
{
int n = 1, p = 3, q = 5;
alterne(n,p) = 8;
cout <<" n = " << n <<" p = " << p << endl;
alterne(p,q) = 12;
cout <<" p = " << p <<" q = " << q <<endl;
}
int & alterne (int & n1, int & n2)
{
static bool indic = true;
if (indic)
{
indic = false;
return n1;
}
else
{
indic = true;
return n2;
}
} |
Et le résultat donner je n'arrive pas à le comprendre : n = 8 p = 3 et p = 3 q = 12
Mais pour moi selon ma compréhension j'arrive à un résultat différent qui est le suivant : n = 8 p = 3 et p = 12 et q = 5 or ce n'est pas juste mais je n'arrive pas à comprendre comment il arrive au premier résultat que je vous ait donner ici.
Pouvez vous svp m'aider à comprendre pourquoi il met p = 3 et q = 12 dans l'appel de la deuxième fonction ?
Je vous remercie d'avance et vous souhaite une excellente soirée / journée.
Aigle-Royal
Réponse au message à Foetus
Bonjour Foetus
Merci vous m'avez éclairer c'est en effet la notion de static que je n'avais pas compris, mais suite à votre
retour j'ai compris maintenant le code et ce que static produit.
Je vous remercie encore une fois bonne journée à vous.
Aigle-Royal