6 / 5 / 1
Регистрация: 17.12.2019
Сообщений: 12
|
|||||||||||
1 | |||||||||||
Правила вычисления операндов при использовании cout для вывода нескольких выражений17.12.2019, 09:46. Показов 565. Ответов 4
Метки нет Все метки)
(
элементы массива 1 и 2.
0
|
|
17.12.2019, 09:46 | |
Ответы с готовыми решениями:
4
Правила вывода cout Порядок вычисления операндов при сложении Создать программу для вычисления выражений (для a и b задаваемых при выполнении программы) Программа для одновременного доступа нескольких пользователей при использовании БД |
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
17.12.2019, 09:58 | 2 |
Ничего не обезумел, это UB, поправьте если ошибаюсь, но в пределах одной инструкции у тебя 2 точки следования и порядок выполнения PopHead не определен
0
|
Вездепух
![]() ![]() 10895 / 5894 / 1611
Регистрация: 18.10.2014
Сообщений: 14,780
|
||||||
17.12.2019, 09:58 | 3 | |||||
Так и должно/может быть в компиляторах С++ до стандарта С++17.
Порядок вычисления операндов выражения
PopHead() отработать первым, а может второй. Как получится, так получится. Ничего удивительного в этом никогда не было.Только стандарт С++17 закрепил жесткое упорядочение слева направо в операторах сдвига и сделал поведение однозначным. Если хотите жесткий порядок - переводите свой компилятор в режим С++17 и надейтесь, что новые правила упорядочения там реализованы корректно.
0
|
6577 / 4562 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
17.12.2019, 10:01 | 4 |
0
|
Вездепух
![]() ![]() 10895 / 5894 / 1611
Регистрация: 18.10.2014
Сообщений: 14,780
|
|
17.12.2019, 10:15 | 5 |
... другими словами, если первый вариант выводит
1 2 , то в компиляторе С++17 и второй вариант тоже обязан выводить именно 1 2 . До С++17 второй вариант имеет право выводить и 1 2 и 2 1 .По этой причине, даже несмотря на гарантии С++17, очень не рекомендуется писать код, поведение которого так зависит от порядка вычисления операндов выражения.
0
|
17.12.2019, 10:15 | |
Помогаю со студенческими работами здесь
5
Ошибка в dll при обращении к потоку вывода cout Преобразовать массив цифр в строку для вывода на cout<< Не открывается окно вывода при использовании graphics.h Очередность вывода echo при использовании функций Ошибки при использовании нескольких форм Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |