АнгелКрови
09.09.2021 05:18

Решите и объясните почему c c++ a++-++a чему равно? ноль ответ не совсем правильный..

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Умару11
07.07.2020 19:10
А++-++а ≠ 0 однозначно!
Выражение содержит два инкремента - сначала постфиксный, затем, после знака минус - префиксный. Постфиксный инкремент выполняется ПОСЛЕ выполнения операции, а префиксный - ДО. Поэтому сначала выполнится префиксный ++, который увеличит операнд "а", затем из прежнего значения a, стоящего слева от знака минус, вычтется "новое" значение "а", и затем уже постфиксный инкремент нарастит полученное значение.
0,0(0 оценок)
Ответ:
умница20063
07.07.2020 19:10
Пусть a = 5 для определённости.
В данном выражении у нас есть оператор инкремента(увеличение на 1).
Посмотрим, что же получится в результате. В первом случае(a++) оператор инкремента постфиксный. Это значит, что если он входит в состав сложного выражения, то сначала выполняются другая операция, а ++ выполняется в последнюю очередь. Если же оператор инкремента префиксный, то для начала выполнится именно он. То есть, смотрите:
1)Вначале не обращаем внимания на знак ++, в качестве уменьшаемого пойдёт само значение а.(смотрим вышеизложенное).
2)Теперь определим значение вычитаемого. Ну во-первых. Именно сейчас выполняется a++ в его истинном виде, то есть, значение a становится равно 6.
Далее, у нас есть оператор ещё ++a. То есть, прежде чем вычитать, значение а текущее увеличивается на 1. То есть, значение а равно 6 + 1 = 7
Ну и теперь выполняем вычитание, 5 - 7 = -2
То есть, нуля тут не получится никак, это ОЧЕНЬ ЧАСТАЯ ОШИБКА. Выходит, что второй операнд на 2 больше первого, поэтому 0 не выйдет.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота