Сумма величин 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--) применяются к переменной сразу после использования этой переменной в выражении.
Ashes: В обеих строках постфиксный инкремент. Результат (y) разный. Получается, что зависит от контекста применения...
А Вы можете практически обосновать выражение x = x++; Чего сказать-то хотели? Почему не использовать инкремент без последующего присвоения x++; Как это обычно используется.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Проверили, результат получается x=1, y=0
Виноват, ошибся в описании результатов!
Виноват, ошибся в описании результатов!
Ключ :
https://www.mql5.com/ru/docs/basis/operations/rules
В стандарте c++ это место не определено и явно сказано, что зависит от реализации. Существует 2 основные реализации:
1. Производить постинкремент(постдекремент) сразу после использования переменной в выражении. (как это сделано у нас)
2. Производить постинкремент после вычисления всего выражения.
Ключ :
https://www.mql5.com/ru/docs/basis/operations/rules
x=0; y=0; x = y++; // x = 1 !!!
x=0; y=0; y = y++; // y = 0 !!!
Приоритет операций успел поменяться ?
x=0; y=0; x = y++; // x = 1 !!!
Совсем запутался!
x=0; y=0; x = y++; // x = 0 ??? y= 1 !!!
x=0; y=0; y = y++; // y = 0 !!!
x=0; y=0; x = y++; // x = 0 ??? y= 1 !!!
Совершенно правильно во всех без исключения реализациях постинкремента.
Если ходите того поведения, которого Вы, по-видимому, ожидаете, используйте преинкремент. x = ++y;
Совсем запутался!
x=0; y=0; x = y++; // x = 0 ??? y= 1 !!!
x=0; y=0; y = y++; // y = 0 !!!
Раздел Арифметические операции:
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении.
Постфиксные инкремент (i++) и декремент (k--) применяются к переменной сразу после использования этой переменной в выражении.
Раздел Арифметические операции:
...Постфиксные инкремент (i++) и декремент (k--) применяются к переменной сразу после использования этой переменной в выражении.
В обеих строках постфиксный инкремент. Результат (y) разный. Получается, что зависит от контекста применения...