Bonjour
j'ai un petit prog qui fait un échange de valeurs. Le 1er avec un passage par référence et l'autre (le même) sans.
Le 1er je comprend le résultat :
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
#include <iostream>
 
using namespace std;
 
void echange(double& a, double& b)
{
    double temporaire(a); 
    a = b;                
    b = temporaire; 
}
 
int main()
{
double a(1.2), b(4.5);
cout << "a vaut " << a << " et b vaut " << b << endl;
echange(a,b);   //On utilise la fonction
cout << "a vaut " << a << " et b vaut " << b << endl;
return 0;
}
resultat :
a=1.2 b=4.5
a=4.5 b=1.2
ensuite sans le passage par reference :
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
void echange(double a, double b)
{
    double temporaire(a);
    a = b;
    b = temporaire;
}
 
int main()
{
double a(1.2), b(4.5);
cout << "a vaut " << a << " et b vaut " << b << endl;
echange(a,b);   //On utilise la fonction
cout << "a vaut " << a << " et b vaut " << b << endl;
return 0;
}
el là le resultat est :
a=1.2 b=4.5
a=1.2 b=4.5
??????