|
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 17
|
||||||
Почему if ( x++ && y++) инкрементирует только x?25.07.2020, 01:37. Показов 4744. Ответов 7
Доброго времени суток. Нашел код и не могу понять как он работает. Почему выводится 1 и как работает тут if? Почему игнорируется y += 2;?
0
|
||||||
| 25.07.2020, 01:37 | |
|
Ответы с готовыми решениями:
7
Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Почему в выражении нельзя использовать запятую вместо && |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 25.07.2020, 01:51 | |
|
Стандартная оптимизация логических выражений. false && что-то там всегда равно false. Значит, если слева от && вышло false, правую часть можно просто проигнорировать. x++ равно исходному значению x, исходное значение - ноль, ноль считается за false. Соответственно, оптимизация и срабатывает.
0
|
|
|
Вездепух
13183 / 6819 / 1821
Регистрация: 18.10.2014
Сообщений: 17,259
|
|||
| 25.07.2020, 01:53 | |||
Сообщение было отмечено mich_daniel как решение
Решение&& вычисляются слева направо, полностью изолированно друг от друга. Сначала вычисляется первый операнд, вместе со всеми своими побочными эффектами. Затем вычисляется второй операнд.* Если первый операнд является false, то второй операнд оператора && не вычисляется вообще. В этом случае сразу понятно, что результат всего && - тоже false.В данном примере сначала вычисляется подвыражение x++ - первый операнд оператора &&. Значение этого выражения равно 0. Побочный эффект этого выражения увеличивает значение переменной x до 1.В контексте оператора && 0 эквивалентно false. Так как первый операнд оператора && равен false, вычисления второго операнда не происходит вообще. Переменная y остается неизменной, т.е. равной 0.Значение всего оператора && равно false, т.е. условие в if ложно и истинная ветка этого if выполняться не будет.if: x = 1, y = 0. Потому и выводится 1.
0
|
|||
|
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 14
|
||||||
| 25.07.2020, 02:06 | ||||||
0
|
||||||
|
Вездепух
13183 / 6819 / 1821
Регистрация: 18.10.2014
Сообщений: 17,259
|
||
| 25.07.2020, 02:43 | ||
if (1 && 0) мы тут не имеем. Мы имеем if (0 && даже-не-смотрели)
0
|
||
|
|
|
| 25.07.2020, 09:41 | |
|
ты знаешь, чем x++ от ++x отличается?
0
|
|
|
24 / 15 / 10
Регистрация: 11.06.2019
Сообщений: 162
|
|||||||||||
| 25.07.2020, 13:47 | |||||||||||
|
Смотри, если ты ставишь оператор ++ после переменной, то у тебя сначала проверится условие, а только потом добавиться одно значение к переменной. В качестве примера приведу вот такую запись:
0
|
|||||||||||
|
"C with Classes"
|
|
| 25.07.2020, 13:55 | |
|
все написали кроме типичной ссылки
Добавлено через 1 минуту спасибо Croessmah, за ссылку на стандарт с регулярно обновляющимся контентом. (мы тебя не забыли)
0
|
|
| 25.07.2020, 13:55 | |
|
Помогаю со студенческими работами здесь
8
Объясните почему не срабатывает И (&&)
ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? Порядок вычисления: операторы «|» и «||», «&» и «&&» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|