n = 5
p = 2
q = n++ < p || p++ != 3
quelles seront les valeurs de n, p et q ??
n = 5
p = 2
q = n++ < p || p++ != 3
quelles seront les valeurs de n, p et q ??
C'est équivalent à:
n:6
Code : Sélectionner tout - Visualiser dans une fenêtre à part q = (n++ < p) || (p++ != 3);
p:3
q:1
Euh pour tes exos c'est tout seul, et si tu etais ne serait-ce qu'un peu malin tu aurai mis tout ca dans un main et fais un simple printf pour voir le résultat.Envoyé par b4mail
Comportement indéfini. Pas de point de séquence. On ne sait pas quand se font les ++.Envoyé par b4mail
Quand on parle de "comportement indéfini" est-ce au niveau de la compréhension humaine ou bien au niveau de la machine?Comportement indéfini. Pas de point de séquence. On ne sait pas quand se font les ++.
Parce que ce code, quand les priorités opératoires sont définies, donne forcément un résultat défini.![]()
je sais que c'est ca est le resultat.. mais j'avais pas ca comme resultat.. je crois que le probleme est du compilateur
merci
Il y a des opérateurs unaires (++). La notion de 'priorité' 'est insuffisante. Ce qui compte aussi, c'est l'ordre d'exécution. Ici, il n'est pas défini.Envoyé par seriousme
Ca dépend du compilo, du système?Ici, il n'est pas défini.
Cas typique de comportement indéfini. Le résultat ne peut pas être prédit.Envoyé par b4mail
J'aurais dit que les 2 ++ se faisaient apres l'affectation dans q (donc apres les tests et le OU )
Du compilateur. Il fait des choix qui ne sont pas définis dans la norme. D'un compilateur à l'autre (ou d'une option d'optimisation à l'autre), le comportement peut être différent.Envoyé par seriousme
Vu que ce n'est pas défini, on peut dire ce qu'on veut...Envoyé par Gruik
Une normalisation n'est pas prévue?Envoyé par Emmanuel Delahaye
La norme dit, entre les lignes, qu'il ne fait pas écrire du code pourri...Envoyé par seriousme
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager