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 : 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
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