Aide sur passage de parametre... [C++] - C++ - Programmation
Marsh Posté le 20-04-2002 à 11:30:01
Dans le premier cas le pointeur est passé par valeur, tandis que dans le second il est passé par référence.
Par exemple:
Code :
|
C'est tout comme la différence entre int et int & par exemple, si ça peut t'éclaircir.
++@
[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]
Marsh Posté le 20-04-2002 à 12:26:12
ce serait plutôt:
paramètre passé par adresse: function(int* var)
par référence: function(int& var)
Et là par valeur: function(int var)
un petit ex:
main()
{
int var=5;
reference(var);
//var vaut 6
adresse(&var);
//var vaut 7
valeur(var);
//var vaut 7
}
référence(int& var)
{
var++;
}
adresse(int* var)
{
*var++;
}
valeur(int var)
{
var++;
}
ces deux écriture sont identiques le passage par référence à été ajouté au langage C++ pour faciliter la manipulation et rendre transaparent l'utilisation d'un ptr.
Par contre ça connaît pas: int* &b
[jfdsdjhfuetppo]--Message édité par weblook$--[/jfdsdjhfuetppo]
Marsh Posté le 20-04-2002 à 13:05:52
Oups, quand je parlais de valeur je voulais dire la valeur du pointeur, c'est à dire l'adresse qu'il contient. J'avais généralisé:
f(UnType param); -> valeur
f(UnType & param); -> référence
Dans UnType on peut mettre d'importe quel type comme int, int *, int **, string, etc.
int* &b c'est une référence vers un pointeur vers un int.
[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]
Marsh Posté le 20-04-2002 à 11:09:56
QQn peut il me dire la difference en C++ entre un:
void prog(int *);
et
void prog(int *&);
Merci!