Pourquoi ce programme échange-t-il les valeurs?
-
29-10-2019 - |
Question
J'ai le code suivant:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#include <cstring>
#include <iomanip>
void swap(long a, long b)
{
long temp;
temp=a;
a=b;
b=temp;
}
int _tmain(int argc, _TCHAR* argv[])
{
int x = 5, y = 3;
cout << x ;
cout << y << endl;
swap(x, y);
cout << x ;
cout << y << endl;
getch();
return 0;
}
Le programme donne la sortie:
5 3
3 5
Le programme échange réellement les valeurs! Pourquoi donc? Les paramètres du swap()
ne sont pas des pointeurs ni des références.
(J'utilise vs 2005)
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow