WikiBtsSio

TSc17Si4VoillaumePassageDeVariableMe

Passage de variable par valeur et par adresse




Passage de variable par valeur :

#include <stdio.h>
#include <stdlib.h>

        void test(int j);

int main()
{
        int i=3;
        printf("1 Affichage de la variable en début de programme %i \n",i);
        test(i); /* On passe l'adresse de i en paramètre. */
        printf ("3 Affichage de la variable en fin de programme %i \n",i);
        /* Ici, i vaut 2. */
}


void test(int j) /* test attend la valeur d'un entier */
{
    j=2;             /* ... modification de la variable. */
    printf ("2 Valeur de la variable dans la fonction : %i \n", j );
    return;
}


Résultat de l'exécution :

etudiant@debianfree:~/progs$ ./passvar2
1 Affichage de la variable en début de programme 3
2 Valeur de la variable dans la fonction : 2
3 Affichage de la variable en fin de programme 3


Passage de variable par adresse :

#include <stdio.h>
#include <stdlib.h>

void test(int *i);

int main()
{
        int i=3;
        printf("1 Affichage de la variable en début de programme %i \n",i);
        test(&i); /* On passe l'adresse de i en paramètre. */
        printf ("3 Affichage de la variable en fin de programme %i \n",i);
        /* Ici, i vaut 2. */
}

void test(int *pj) /* test attend l'adresse d'un entier... */
{
    *pj=2;             /* ... pour le modifier. */
    printf ("2 Valeur de la variable dans la fonction : %i \n",*pj);
    return;
}


Résultat de l'éxécution :

1 Affichage de la variable en début de programme 3
2 Valeur de la variable dans la fonction : 2
3 Affichage de la variable en fin de programme 2