Арифметические операции

К арифметическим относятся аддитивные и мультипликативные операции:

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

Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении.

Постфиксные инкремент (i++) и декремент (k--) применяются к переменной сразу после использования этой переменной в выражении.

Важное замечание

int i=5;
int k = i++ + ++i;

Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в другую (например, из Borland C++ в MQL5). В общем случае порядок вычислений зависит от реализации компилятора. На практике существуют два способа реализации постдекремента (постинкремента):

  1. постдекремент (постинкремент) применяется к переменной после вычисления всего выражения;
  2. постдекремент (постинкремента) применяется к переменной сразу по месту операции.

В MQL5 в данный момент реализован первый способ вычисления постдекремента (постинкремента). Но даже обладая этим знанием лучше не экспериментировать с использованием данной тонкости.

Примеры:

int a=3;
a++;            // верное выражение
int b=(a++)*3;  // неверное выражение

Смотри также

Приоритеты и порядок операций