La directive define en C

Fermé
Ibravitsh - Modifié par Ibravitsh le 15/03/2014 à 18:58
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 15 mars 2014 à 20:10
Bonjour ,qq un peut m expliquer pk le resultat de ce prog affiche 13 au lieu
de 125 et merci
******************
#include<stdio.h>

#define x 4+1
int main()
{
int i;
i = x*x*x;
printf("%d",i);
return 0;
}
 ******************

(a) 125
(b) 13
(c) 17
(d) None of above

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 mars 2014 à 20:10
Bonjour,
C'est bien 13 que cela doit afficher et non 125.
Il suffit de remplacer x par 4+1 (il n'y a pas d'évaluation avant substitution).
Ce qui donne : 4+1*4+1*4+1=13.

Cdlt,
0