Référence

Définition, exemples et bonnes pratiques

À retenir

  • Une référence n'est pas la donnée elle-même, mais son adresse.
  • Elle permet d'économiser de la mémoire vive en évitant les copies inutiles.
  • Elle facilite le partage d'informations entre différentes fonctions d'un code.

Une référence est un moyen détourné d'accéder à une information. Au lieu de manipuler directement la donnée (comme un nombre ou un texte), on utilise une sorte d'étiquette ou d'adresse qui indique à l'ordinateur où se trouve cette donnée en mémoire. C'est comme si, au lieu de porter un livre lourd, vous aviez simplement un papier avec son numéro d'étagère dans une bibliothèque.

Étymologie

Issu du latin referre (« rapporter »), le terme s'est imposé en informatique pour désigner le lien entre un nom de variable et son emplacement physique en mémoire vive. Il permet de distinguer le « contenant » (le lien) du « contenu » (la valeur).

Exemples d'usage

  • En JavaScript ou Python, lorsque vous manipulez des objets, vous manipulez presque toujours des références : copier une variable ne crée pas un deuxième objet, mais un deuxième lien vers le même objet.
  • En C++, une référence (notée avec &) sert d'alias pour une autre variable déjà existante.
  • Un raccourci sur votre bureau Windows est une référence vers le fichier original situé ailleurs sur le disque dur.

Cas d'usage

On utilise les références principalement pour deux raisons : la performance (passer l'adresse d'un fichier de 1 Go est instantané, alors que le copier prendrait du temps) et la synchronisation (permettre à plusieurs parties d'un programme de modifier la même information en temps réel).

Bonnes pratiques

Attention aux effets de bord : si deux variables pointent vers le même objet via une référence, modifier l'objet avec la première variable impactera aussi la seconde. Il faut également se méfier des références « nulles » (qui pointent vers rien), une cause fréquente de plantage des logiciels.

Synonymes

alias pointeur (concept proche) lien adresse mémoire

Antonymes

valeur copie donnée brute

Conseil

Pour bien visualiser le concept, imaginez que les références sont des flèches qui pointent vers des boîtes. Si vous avez trois flèches pointant vers la même boîte, et que vous changez ce qu'il y a dans la boîte, le changement est visible pour les trois flèches.

Questions fréquentes

Quelle est la différence entre une valeur et une référence ?

La valeur est la donnée elle-même (le contenu du cadeau). La référence est l'adresse de l'endroit où se trouve le cadeau.

Pourquoi dit-on que les références sont dangereuses ?

Parce que si vous supprimez la donnée originale alors qu'une référence pointe encore dessus, le programme peut tenter d'accéder à du vide et s'arrêter brutalement (crash).