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