Exercice : Le C et les constantes
float f2=2.6789887f; char c1="d"; char c3=i; int i=567; int i1=li; char c='x'; short s1=i; long int li=328798123; int i2=lli; float f3=0.6789887E-4f; float f1=0.6789887E-4; long long int lli=328798123456; double d=3.58796789; char c2=060; short s=0x22; double d1=0.6789887E-8; float f=2.457; Plus d'éléments à catégoriser | Déclaration sans conversion Déposez ici Déclaration avec conversion Déposez ici |
Pour les types entiers int, long int et long long int, les constantes sont automatiquement interprétées selon le type adapté. Il n'y a donc pas de conversion.
Pour les déclarations char c2=060; et short s=0x22;, il y a conversion. D'une part, une constante entière est au minimum int. D'autre part, comme on utilise les représentations octale et hexadécimale, les constantes sont interprétées comme des entiers non signés (unsigned int).
La copie du contenu d'une variable implique une conversion si le type d'origine n'est pas le même que celui de la variable déclarée.
La déclaration char c1="d" ; donne lieu à une conversion, car "d" n'est pas un caractère mais une chaîne de caractères.
Pour les réels sans précision, une constante en virgule flottante ou au format scientifique est analysée comme un double, d'où la conversion vers un float.