Exercice 56
Énoncé
Écrire une fonction permettant d’échanger les contenus de 2 variables de type int
fournies en argument :
a. en transmettant l’adresse des variables concernées (seule méthode utilisable en
C) ;
b. en utilisant la transmission par référence.
Dans les deux cas, on écrira un petit programme d’essai (main) de la fonction.
a. Avec la transmission des adresses des variables
#include
using namespace std ;
main()
{ void echange (int *, int *) ; // prototype de la fonction echange
int n=15, p=23 ;
cout << "avant : " << n << " " << p << "\n" ;
echange (&n, &p) ;
cout << "après : " << n << " " << p << "\n" ;
}
void echange (int * a, int * b)
{ int c ; // pour la permutation
c = *a ;
*a = *b ;
*b = c ;
}
b. Avec une transmission par référence
#include
using namespace std ;
main()
{ void echange (int &, int &) ; // prototype de la fonction echange
int n=15, p=23 ;
cout << "avant : " << n << " " << p << "\n" ;
echange (n, p) ; // attention n et non &n, p et non &p
cout << "après : " << n << " " << p << "\n" ;
}
void echange (int & a, int & b)
{ int c ; // pour la permutation
c = a ;
a = b ;
b = c ;
}
121
Énoncé
Écrire une fonction permettant d’échanger les contenus de 2 variables de type int
fournies en argument :
a. en transmettant l’adresse des variables concernées (seule méthode utilisable en
C) ;
b. en utilisant la transmission par référence.
Dans les deux cas, on écrira un petit programme d’essai (main) de la fonction.
a. Avec la transmission des adresses des variables
#include
using namespace std ;
main()
{ void echange (int *, int *) ; // prototype de la fonction echange
int n=15, p=23 ;
cout << "avant : " << n << " " << p << "\n" ;
echange (&n, &p) ;
cout << "après : " << n << " " << p << "\n" ;
}
void echange (int * a, int * b)
{ int c ; // pour la permutation
c = *a ;
*a = *b ;
*b = c ;
}
b. Avec une transmission par référence
#include
using namespace std ;
main()
{ void echange (int &, int &) ; // prototype de la fonction echange
int n=15, p=23 ;
cout << "avant : " << n << " " << p << "\n" ;
echange (n, p) ; // attention n et non &n, p et non &p
cout << "après : " << n << " " << p << "\n" ;
}
void echange (int & a, int & b)
{ int c ; // pour la permutation
c = a ;
a = b ;
b = c ;
}
121
