Votre logique est proche, mais pas tout à fait droit. L'ordre d'évaluation est de Gauche à Droite pour l'opérateur+. t1 vient avant le binaire op, LHS, puis l'incrément est sur le membre de droite de cette binaire op. La LHS est exécuté en premier.
t2 = t1 + (++t1);
t2 = 5 + 6; // t1 becomes 6 here as a side effect before being read on the RHS
t2 = 11;
Visualisé comme un arbre, vous avez,
+
/ \
t1 ++t1
Ordre De Priorité
Lorsque deux opérateurs de partager un opérande de l'opérateur avec la plus grande priorité va d'abord. Par exemple, 1 + 2 * 3 est traité comme 1 + (2 * 3), considérant que 1 * 2 + 3 est considérée comme (1 * 2) + 3 depuis la multiplication a une priorité plus élevée que l'addition.
L'associativité
Lorsque deux opérateurs de même priorité, l'expression est évaluée en fonction de son associativité. Par exemple x = y = z = 17 est traitée comme x = (y = (z = 17)), en laissant tous les trois variables avec la valeur 17, puisque l'opérateur = de droite à gauche associativité (et une instruction d'affectation est évaluée à la valeur sur le côté droit). D'autre part, 72 / 2 / 3 est considérée comme (72 / 2) / 3 puisque l'opérateur / a gauche-à-droite de l'associativité.