Reprise du message précédent :
in_your_phion a écrit :
Code :
- #include <stdio.h>
- int main () {
- int a =10;
- printf ("%p\n",&a);
- return 0;
-
- }
|
j'ai pas d'erreur, et pourtant a est une constante, nan
|
Non (manque un void*). a n'est certainement pas une constante, la preuve, c'est que tu a résussi à prendre son adresse, preuve que c'est une objet.
Ce code fonctionne aussi :
#include <stdio.h>
int main () {
int a;
printf ("%p\n", (void*) &a);
return 0;
}
|
C'est un objet de type int initialisé avec une valeur. C'est la valeur en elle même qui est une constante. Mais une fois qu'elle a été copiée dans la variable, celle-ci (la variable) ne devient pas magiquement une constante, même si on ajoute le mot clé 'const', qui, rappelons-le une ènième fois, transforme un objet modifiable en un objet non modifiable.
Mais ça reste un objet. Certainement pas une constante. Je rappelle qu'une constante n'a pas d'adresse et n'est donc pas un objet.
---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/