Bonsoir,

J'ai le problème de compréhension suivant :
Dans un livre consacré au langage C++ il est dit que :
(1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ( i < max && (j++ == 10))
n'est pas équivalent à :
(2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
j++;
(i < max && (j == 10));
"Car l'opérateur && n'évalue son second opérande que lorsque cela est nécessaire. D'où dans la première formulation, l'expression j++ n'est pas évaluée lorsque la condition (i < max) est fausse; elle l'est, en revanche, dans la deuxième formulation."?????
Je ne comprends pas cette explication. Pour moi en (2) les parenthèses forcent l'évaluation de (j) en premier puis l'évaluation de ( i < max) si j est vrai ?...
En (1) même raisonnement ... Donc équivalence ?