Petite question académique qui m'intrigue (mais ne m'empèche pas de dormir):
La déclaration des variables, parfois un peu ésotérique, obéit à une certaine logique. Par exemple exprime que *var a un type int donc en utilisant * avec son sens habituel de déréférencement d'une adresse, var est bien un type "adresse de int" . On peut associer * avec int ou avec var, le sens est le même.
Je ne comprends pas la raison de la déclaration des références qui ne semble pas procéder de la même logique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
int var;
int & rvar = var;
La logique précédente appliquée ici donnerait pour &rvar (adresse de rvar) un type int alors qu'il s'agit d'un int * (qui est l'adresse de var). La logique précédente demanderait plutôt une déclaration
Alors,
&rvar serait bien un int *
*& rvar équivalent à rvar (le contenu de l'adresse de x est x) serait bien un int.

Connaissez vous la raison logique du choix qui a été opéré ou la syntaxe choisie l'a t'elle été pour une raison de simplicité (ou pour enlever les * qui font peur) ?