Exercice langage C: Types de Valeurs

Enoncé de l'exercice:


Soient les déclarations :

char c = '\x05' ;

int n = 5 ;

long p = 1000 ;

float x = 1.25 ;

double z = 5.5 ;

Quels sont le type et la valeur de chacune des expressions suivantes :

n + c + p /* 1 */

2 * x + c /* 2 */

(char) n + c /* 3 */

(float) z + n / 2 /* 4 */

1) c est tout d'abord converti en int, avant d'être ajouté à n.
Le résultat (10), de type int, est alors converti en long, avant d'être ajouté à p.
On obtient finalement la valeur 1010, de type long.

2) On évalue d'abord la valeur de 2*x, en convertissant 2 (int) en float, ce qui fournit la valeur 2.5 (de type float).

Par ailleurs, c est converti en int (conversion systématique).
On évalue ensuite la valeur de 2*x, en convertissant 2 (int) en float, ce qui fournit la valeur 2.5 (de type float).
Pour effectuer l'addition, on convertit alors la valeur entière 5 (c) en float, avant de l'ajouter au résultat précédent.
On obtient finalement la valeur 7.75, de type floa

Article publié le 19 Mars 2012 par GC Team