Fehler, Irrtümer, Fragen - Seite 162

 
mql5:

Überprüft, das Ergebnis ist x=1, y=0

Mein Fehler, falsche Ergebnisbeschreibung!

 
Ashes:

Mein Fehler, falsche Beschreibung der Ergebnisse!

Schlüssel:

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

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

Der C++-Standard definiert diese Stelle nicht und sagt ausdrücklich, dass sie von der Implementierung abhängt. Es gibt 2 Hauptimplementierungen:

1. Erzeugt ein Postinkrement unmittelbar nach der Verwendung der Variablen im Ausdruck. (wie wir es getan haben).

2. Postinkrement, nachdem der gesamte Ausdruck berechnet wurde.

Ich will mich nicht streiten, aber es ist schon etwas verwirrend, wenn der richtige Teil derselbe ist, aber das Ergebnis der Berechnung ein anderes ist...
 

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

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

Konnte die Priorität der Maßnahmen geändert werden?

 
Ashes:

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

Wie ist das? x=0, y=1
 

Völlig verwirrt!

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

Vollkommen korrekt in allen Postincrement-Implementierungen ohne Ausnahme.

Wenn Sie das Verhalten, das Sie zu erwarten scheinen, ausführen, verwenden Sie preincrement. x = ++y;

 
Ashes:

Völlig verwirrt!

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

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

Abschnitt Arithmetische Operationen:

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

Inkrement- und Dekrementoperationen gelten nur für Variablen, nicht aber für Konstanten. Die Präfixe Inkrement (++i) und Dekrement (--k) werden auf eine Variable angewendet, kurz bevor diese in einem Ausdruck verwendet wird.

Postfix-Inkremente (i++) und Dekremente (k--) werden auf eine Variable unmittelbar nach deren Verwendung in einem Ausdruck angewendet.

 
Rosh:

Abschnitt Arithmetische Operationen:

...
Postfix-Inkremente (i++) und Dekremente (k--) werden auf eine Variable unmittelbar nach deren Verwendung in einem Ausdruck angewendet.
In beiden Zeilen wird das Postfix erhöht. Das Ergebnis (y) ist anders. Es stellt sich heraus, dass dies vom Kontext der Anwendung abhängt...
 
Ashes:
Beide Zeilen haben ein Postfix-Inkrement. Das Ergebnis (y) ist anders. Es stellt sich heraus, dass dies vom Kontext der Anwendung abhängt...
Können Sie den Ausdruck x = x++ praktisch begründen; Was wollen Sie damit sagen? Warum nicht ein Inkrement ohne anschließende Zuweisung von x++; verwenden, wie es normalerweise verwendet wird.