/* IFT1166 - démonstration #6 - exercice 3 14-octobre -2005 v1.01 M.Lokbani MàJ pour A05 à partir de examen Intra H2000 Q3-1+ gcc3.4.2, +comments 16-février -2000 v1.00 M.Lokbani Examen Intra H2000, Question 3-1. contact: lokbani@iro.umontreal.ca Cette démonstration a pour but de vous donnez quelques astuces de programmation. Copyright (C) 2000-2005 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- */ #include using namespace std; void f(int& x, int& y){ x += 10; y -= 5; } int main(){ int x = 8; int y = 9; f(x,y); cout << x << ' ' << y << endl; f(y,x); cout << x << ' ' << y << endl; return 0; } /* opérations int x=8; x déclaré dans le main x vaut 8 int y=9; y déclaré dans le main y vaut 9 f(x,y) appel de f(int &x,int &y) x est passée par référence. Toute opération sur x de f est en réalité sur x de main. x+=10; x=8; x= x+10; x = 8+10; x=18; y est passée par référence. Toute opération sur y de f est en réalité sur y de main. y-=5; y=9; y= y-5; y = 9-5; y=4; fin de f(x,y) et retour a main x=18 y=4 cout << x << ' ' << y << endl; affichage: 18 4 x déclaré dans le main vaut maintenant 18 y déclaré dans le main vaut maintenant 4 f(y,x) appel de f(int &y,int &x) x est passée par référence en tant que y. Toute opération sur y de f est en réalité sur x de main. y est passée par référence en tant que x. Toute opération sur x de f est en réalité sur y de main. x+=10; x=4; x= x+10; x = 4+10; x=14; y-=5; y=18; y= y-5; y = 18-5; y=13; fin de f(y,x) et retour a main x=13 y=14 cout << x << ' ' << y << endl; affichage: 13 14 */