Erreurs, bugs, questions - page 162

 
mql5:

Vérifié, le résultat est x=1, y=0

Ma faute, mauvaise description du résultat !

 
Ashes:

Ma faute, mauvaise description des résultats !

Clé :

https://www.mql5.com/ru/docs/basis/operations/rules

Документация по MQL5: Основы языка / Операции и выражения / Приоритеты и порядок операций
Документация по MQL5: Основы языка / Операции и выражения / Приоритеты и порядок операций
  • www.mql5.com
Основы языка / Операции и выражения / Приоритеты и порядок операций - Документация по MQL5
 
stringo:

La norme c++ ne définit pas cet endroit et dit explicitement que cela dépend de l'implémentation. Il existe deux implémentations principales :

1. Produire un postincrément immédiatement après que la variable soit utilisée dans l'expression. (comme nous l'avons fait).

2. Postincrément après le calcul de l'expression entière.

Je ne vais pas discuter, mais c'est un peu déstabilisant quand la partie droite est la même, mais que le résultat du calcul est différent...
 

x=0 ; y=0 ; x = y++ ; // x = 1 ! !!

x=0 ; y=0 ; y = y++ ; // y = 0 ! !!

La priorité des opérations a-t-elle réussi à changer ?

 
Ashes:

x=0 ; y=0 ; x = y++ ; // x = 1 !

Comment ça ? x=0, y=1
 

Complètement confus !

x=0 ; y=0 ; x = y++ ; // x = 0 ? y= 1 ! !!

x=0 ; y=0 ; y = y++ ; // y = 0 ! !!

 
Ashes:

x=0 ; y=0 ; x = y++ ; // x = 0 ? y= 1 ! !!

Parfaitement correct dans toutes les implémentations de postincrémentation sans exception.

Si vous marchez sur le comportement que vous semblez attendre, utilisez la préincrémentation. x = ++y ;

 
Ashes:

Complètement confus !

x=0 ; y=0 ; x = y++ ; // x = 0 ? y= 1 ! !!

x=0 ; y=0 ; y = y++ ; // y = 0 ! !!

Section Opérations arithmétiques:

Сумма величин                           i = j + 2;
Вычитание величин                       i = j - 3;
Изменение знака                         x = - x;
Умножение величин                       z = 3 * x;
Частное от деления                      i = j / 5;
Остаток от деления                      minutes = time % 60;
Добавление 1 к значению переменной      i++;
Добавление  1 к значению переменной      ++i;
Вычитание  1 от значения переменной      k--;
Вычитание  1 от значения переменной      --k;

Les opérations d'incrémentation et de décrémentation ne s'appliquent qu'aux variables, elles ne s'appliquent pas aux constantes. Les préfixes d'incrémentation (++i) et de décrémentation (--k) sont appliqués à une variable juste avant que cette variable ne soit utilisée dans une expression.

Les incréments (i++) et les décréments (k--)postfixes sont appliqués à une variable immédiatement après que cette variable a été utilisée dans une expression.

 
Rosh:

Section Opérations arithmétiques:

...
Les incréments (i++) et les décréments (k--)postfixes sont appliqués à une variable immédiatement après que cette variable a été utilisée dans une expression.
Dans les deux lignes, postfixe incrémente. Le résultat (y) est différent. Il s'avère que cela dépend du contexte d'application...
 
Ashes:
Les deux lignes ont un incrément postfixe. Le résultat (y) est différent. Il s'avère que cela dépend du contexte d'application...
Pouvez-vous justifier pratiquement l'expression x = x++ ; Que voulez-vous dire ? Pourquoi ne pas utiliser un incrément sans affectation ultérieure de x++ ; comme c'est habituellement le cas.
Raison: