Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Непонятная арифметика |
Автор: Proximo_RZN 11.5.2007, 16:30 |
Господа, всем здравствуйте. Сегодня абсолютно случайно обнаружили прикол или багу или фичу, даже и не знаю что сказать. Вот такой код: int i = 5; i = ++i + ++i; Visual C++ 2003 и Visual C++ 6.0 говорят что в итоге i = 14 а Visual C#.NET 2003 говорит, что 13 Если считать в уме, то я склоняюсь к 13. Какие ваши комментарии? Я недоумеваю... Добавлено через 1 минуту и 4 секунды Такое впечатление что приоритет в C++ и в C# у унарных операций разный |
Автор: zkv 11.5.2007, 16:33 |
мда, посмотрите http://forum.vingrad.ru/forum/topic-150528/anchor-entry1129884/30.html#st_0 |
Автор: mr.Anderson 11.5.2007, 16:36 |
Вроде, только что разбирали где-то такую тему? 1. Инкремент I, туда помещается 6. 2. Инкремент I, туда помещается 7. 3. 7 + 7 = 14. А насчет разной реакции компилеров - а зачем такой оператор писать? ![]() |
Автор: W4FhLF 11.5.2007, 16:37 |
Люди о особенностях стандарта через БОР узнают ![]() |
Автор: Proximo_RZN 11.5.2007, 16:37 |
Спасибо. извините за повтор mr.Anderson, да нет, такой оператор не нужен. Просто прислали по аське и спросили - сколько будет, а я ответил 13. Потом забыл в VS6, оказалось 14, офигел. вот и все... Еще раз сорри и спасибо |