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 exempleexprime 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int * var;
Je ne comprends pas la raison de la déclaration des références qui ne semble pas procéder de la même logiqueLa 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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int var; int & rvar = var;
Alors,
Code : Sélectionner tout - Visualiser dans une fenêtre à part int *& rvar;
&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) ?
Partager