Exercice : Conversions implicites = conversions dangereuses ?
Déterminez quelles sont les conversions implicites qui provoqueront des erreurs.
short s1=i; float f1=0.6789887E-4; int i1=li; char c3=i; char c1="d"; char c2=060; int i2=lli; short s=0x22; float f=2.457; Plus d'éléments à catégoriser | Conversion sans risque Déposez ici Conversion potentiellement dangereuse Déposez ici |
La première déclaration à corriger est char c1="d";. Cette déclaration provoque une conversion d'un pointeur char* vers un char. Il y a donc obligatoirement une erreur.
Les autres déclarations doivent être vérifiées, car les valeurs avant conversion peuvent ne pas avoir de représentation dans le type destination. C'est le cas avec les valeurs définies dans les déclarations vues plus haut. Nous aurons alors une perte de valeurs.