Erros, bugs, perguntas - página 162

 
mql5:

Verificado, o resultado é x=1, y=0

A minha má e errada descrição do resultado!

 
Ashes:

A minha má e errada descrição dos resultados!

Chave :

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

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

A norma c++ não define este lugar e diz explicitamente que depende da sua implementação. Há 2 implementações principais:

1. Produzir um pós-criação imediatamente após a variável ser utilizada na expressão. (como nós fizemos).

2. Pós-incrementação depois de toda a expressão ser calculada.

Não vou argumentar, mas é um pouco chocante quando a parte certa é a mesma, mas o resultado do cálculo é diferente...
 

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

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

Será que a prioridade das operações conseguiu mudar?

 
Ashes:

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

Como assim? x=0, y=1
 

Completamente confuso!

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 !!!

Perfeitamente correcto em todas as implementações pós-criação, sem excepção.

Se andar com o comportamento que parece estar à espera, use o pré-incremento. x = ++y;

 
Ashes:

Completamente confuso!

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

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

Secção Operações aritméticas:

Сумма величин                           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;

As operações de incrementos e decréscimo aplicam-se apenas a variáveis, não se aplicam a constantes. O incremento de prefixo (++i) e a diminuição (--k) são aplicados a uma variável imediatamente antes dessa variável ser utilizada numa expressão.

Incrementos (i++) e decretos (k--) são aplicados a uma variável imediatamente após essa variável ser utilizada numa expressão.

 
Rosh:

Secção Operações aritméticas:

...
Incrementos (i++) e decretos (k--) são aplicados a uma variável imediatamente após essa variável ser utilizada numa expressão.
Em ambas as linhas, incremento post-fix. O resultado (y) é diferente. Acontece que depende do contexto de aplicação.
 
Ashes:
Ambas as linhas têm incremento post-fix. O resultado (y) é diferente. Acontece que depende do contexto de aplicação.
Pode praticamente justificar a expressão x = x+++; O que quer dizer? Porque não utilizar um incremento sem uma atribuição subsequente de x++; Como é normalmente utilizado.