Exercice 2
Énoncé
Soient les déclarations :
char c = '\x01' ;
short int p = 10 ;
Quels sont le type et la valeur de chacune des expressions suivantes :
p + 3 /* 1 */
c + 1 /* 2 */
p + c /* 3 */
3 * p + 5 * c /* 4 */
1. p est d’abord soumis à la conversion « systématique » short -> int, avant d’être ajouté
à la valeur 3 (int). Le résultat 13 est de type int.
2. c est d’abord soumis à la conversion « systématique » char -> int (ce qui aboutit à la
valeur 1), avant d’être ajouté à la valeur 1 (int). Le résultat 2 est de type int.
3. p est d’abord soumis à la conversion systématique short -> int, tandis que c est soumis
à la conversion systématique char -> int ; les résultats sont alors additionnés pour
aboutir à la valeur 11 de type int.
4. p et c sont d’abord soumis aux mêmes conversions systématiques que ci-dessus ; le
résultat 35 est de type int.
22
Énoncé
Soient les déclarations :
char c = '\x01' ;
short int p = 10 ;
Quels sont le type et la valeur de chacune des expressions suivantes :
p + 3 /* 1 */
c + 1 /* 2 */
p + c /* 3 */
3 * p + 5 * c /* 4 */
1. p est d’abord soumis à la conversion « systématique » short -> int, avant d’être ajouté
à la valeur 3 (int). Le résultat 13 est de type int.
2. c est d’abord soumis à la conversion « systématique » char -> int (ce qui aboutit à la
valeur 1), avant d’être ajouté à la valeur 1 (int). Le résultat 2 est de type int.
3. p est d’abord soumis à la conversion systématique short -> int, tandis que c est soumis
à la conversion systématique char -> int ; les résultats sont alors additionnés pour
aboutir à la valeur 11 de type int.
4. p et c sont d’abord soumis aux mêmes conversions systématiques que ci-dessus ; le
résultat 35 est de type int.
22
