Je me demande si quelqu'un peut expliquer à me suivre: Si j'écrisAffectation d'une variable de pointeur à un const int en C++?
int i = 0;
float* pf = i;
je reçois une erreur de compilation (gcc 4.2.1):
error: invalid conversion from ‘int’ to ‘float*’
sens Makes - ils sont évidemment deux types complètement différents. Mais si au lieu que j'écris
const int i = 0;
float* pf = i;
Il compile sans erreur. Pourquoi le «const» devrait-il faire la différence du côté droit de la mission? Ne fait-il pas partie de l'idée du mot clé 'const' pour pouvoir appliquer des contraintes de type pour des valeurs constantes? Toute explication que j'ai pu trouver se sent genre de faux. Et aucune de mes explications n'explique aussi le fait que
const int i = 1;
float* pf = i;
ne parvient pas à compiler. Quelqu'un peut-il offrir une explication?