§6.8.4 dit que la syntaxe d'une instruction de sélection if
est:
if (expression) statement
De plus, dans cette section, il mentionne que si l'expression compare l'inégalité à 0, puis statement
est exécutée. L'expression doit donc être évaluée avant de pouvoir être comparée à 0. i = 0
est une expression qui vaut 0. Pour plus de détails, voir §6.5 “ Expressions ” en ce qui concerne le §6.5.16 “ Opérateurs d'affectation ”, en particulier noter cet extrait :
Un opérateur d'affectation stocke une valeur dans l'objet désigné par l'opérande de gauche. Une expression d'affectation a la valeur de l'opérande gauche après l'affectation, mais n'est pas une valeur lvalue.
De quelle affectation vous inquiétez-vous. Notez également qu'il n'y a pas de comparaison (cela est fait avec ==) –