Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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.

А насчет разной реакции компилеров - а зачем такой оператор писать? smile Куда такие навороты?

Автор: W4FhLF 11.5.2007, 16:37
Люди о особенностях стандарта через БОР узнают smile

Автор: Proximo_RZN 11.5.2007, 16:37
Спасибо. извините за повтор

mr.Anderson, да нет, такой оператор не нужен. Просто прислали по аське и спросили - сколько будет, а я ответил 13. Потом забыл в VS6, оказалось 14, офигел. вот и все...

Еще раз сорри  и спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)