justinchenmtl / inf3135-h2019-tp2

Travail Pratique2
0 stars 0 forks source link

Confondre aux passage par valeur et passage par adresse #3

Open justinchenmtl opened 5 years ago

justinchenmtl commented 5 years ago

Dans le fichier outils.c, j'essaie de créer une fonction pour échanger deux nombres entrées. Au début, j'utilise le passage par valeur, mais ça ne fonctionne pas:

int echange(long long c, long long d)
{
    long long temp;
    if(c > d)
    {
        temp = c;
        c = d;
        d = temp;
    }
    return 0;
}
justinchenmtl commented 5 years ago

Quand j'ai réalisé que cet échange de passage par valeurs ne fonctionnait que dans des fonctions locales. J'ai utilisé le passage de l'adresse pour échanger les valeurs dans les deux variables afin d'obtenir l'effet souhaité. Le code modifié est le suivant:

int echange(long long *c, long long *d)
{
    long long temp;

    if(*c > *d)
    {
        temp = *c;
        *c = *d;
        *d = temp;
    }
    return 0;
}