2017-05-11 2 views

Répondre

1

Il est à cause de la façon dont pre et post incréments de travail, il obtient évalué comme ceci:

1. y = --x + x++ + --x ; 
2. y = 2 + (2)++ + --(3); 
3. y = 2 + 2 + 2; 
4. y = 6 

Après 2 décréments et 1 incrément, x devient 2. troisième opération

+0

est également predecrementation en cas de 'y = --x + --x' y serait 3 et x serait 1. pourquoi dans cet exemple la deuxième --x est initialisée avec 3 et non 2? –

+0

Oui, donc 2 (pré) décréments et 1 (post) incréments entraînent 1 décrément evantually, en changeant la valeur de 'x' à 2. –

+0

Je comprends pourquoi final x est 2. La chose que je ne comprends pas, pourquoi le second (pré) n'est pas appelé après le premier qui lui donne '2 +2 + 1' –