Différence entre passage par référence et passage par valeur

Il existe deux manières de transmettre des arguments ou des paramètres aux fonctions :

  • Passage par valeur
  • Passage par référence

Dans le passage par valeur, une copie des arguments réels est transmise aux arguments formels respectifs. Alors que, dans le passage par référence, l’emplacement (adresse) des arguments réels est transmis à des arguments formels, toute modification apportée aux arguments formels se reflétera également dans les arguments réels.

Différence entre passage par référence et passage par valeur
Différence entre programmation procédurale et orientée objetDifférence entre programmation procédurale et orientée objetLa différence entre la programmation procédurale et la programmation orientée objet (POO) réside dans le fait que dans la programmation procédurale, les programmes sont basés sur…Lire plus

 

Table de comparaison
Passage par valeur Passage par référence
Variable Une copie de la variable est transmise. La variable elle-même est transmise.
L’Effet La modification du copie de variable ne modifie pas la valeur d’origine de la variable en dehors de la fonction. La modification de la variable affecte également la valeur de la variable en dehors de la fonction.

 

Définition de passage par valeur

Quand on utilise le passage par valeur, la copie de la valeur est transmise à la fonction, et les modifications apportées à l’intérieur de la fonction ne se répercutent pas sur les autres fonctions.

Exemple :

#include <stdio.h>

/* Prototype */
void swapByValue(int, int); 
 
int main() /* Fonction principale */
{
  int nbr1 = 5, nbr2 = 10;
 
  /* les arguments réels seront tels quels */
  swapByValue(nbr1, nbr2);
  printf("nbr1: %d, nbr2: %dn", nbr1, nbr2);
}
 
void swapByValue(int x, int y)
{
  int tmp;
  tmp = x; x = y; y = tmp;
}
 
LA SORTIE
=================
nbr1: 5, nbr2: 10
Différence entre définition et déclarationDifférence entre définition et déclarationDéfinition et déclaration sont des termes un peu confus si vous êtes débutant en programmation. Les deux concepts sont différents, car la définition implique l’assignation…Lire plus

 

Définition de passage par référence

Quand on utilise le passage par référence, l’adresse de l’argument est transmis à la fonction, et les modifications effectuées à l’intérieur de la fonction sont également répercutées en dehors de la fonction.

Exemple :

#include <stdio.h>

/* Prototype */
void swapByReference(int*, int*); 
 
int main() /* Fonction principale */
{
  int nbr1 = 5, nbr2 = 10;
 
  /* les arguments réels seront modifiés */
  swapByReference(&nbr1, &nbr2);
  printf("nbr1: %d, nbr2: %dn", nbr1, nbr2);
}
 
void swapByReference(int *x, int *y)
{
  int tmp;
  tmp = *x; *x = *y; *y = tmp;
}
 
LA SORTIE
=================
nbr1: 10, nbr2: 5
Différence entre récursion et itérationDifférence entre récursivité et itérationLa récursivité et l’itération exécutent plusieurs fois un ensemble d’instructions. La récursivité se produit lorsqu’une instruction dans une fonction s’appelle elle-même plusieurs fois. L’itération est…Lire plus
Conclusion:

Si vous souhaitez ne transmettre que la valeur du variable utilisez le «Passage par valeur» et si vous souhaitez voir la modification de la valeur originale du variable, utilisez le «Passage par référence».
 
 

Une réflexion sur “Différence entre passage par référence et passage par valeur

  • novembre 6, 2020 à 5:10
    Permalien

    salut.je vous felicite vivement car vous avez fait un travail vraiment formidable

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *