Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > (++i)++ |
Автор: Алина 23.6.2005, 04:56 | ||||
Если кто-нибудь может, объясните пожалуйста, как будет работать следующий фрагмент кода:
Выводит два числа: 6, 8 Как будет работать
Чем отличаются ++i и i++? Чему будет равно значение переменной после выполнения этой команды? А если ее использовать в cout<<i++<<" "<<i;? |
Автор: En_t_end 23.6.2005, 05:18 | ||||||
++i - унарная операция прибавления еденицы, то есть возвращает i+1. i++ - то же самое, но возвращает сначала i, затем увеличивает её на 1. То есть в результате работы этого кода:
Вот что будет в "консоле: 5 6"
Здесь все аналогично, правда присутсвтует приритет скобок, и еси я не ошибаюсь, в первой и последней итерации будет : "консоль: 7" |
Автор: Ignat 23.6.2005, 09:58 | ||||||
Нет, ответ был указан выше: 6, 8. Постфиксный инкремент имеет более высокий приоритет, чем префиксный, поэтому поставлены скобки. Т.е. этот кусок выполнится в две итерации в консоль пойдет 6, НО i=7 после первой итерации. Аналогично будет выполнена вторая итерация. En_t_end, скажи, что будет результатом строчек ![]()
Чур, не подсказывать ![]() |
Автор: Earnest 23.6.2005, 15:15 | ||
Скобки поставлены не только из-за приоритета, а еще и ... тс! ... (велено не подсказывать) ![]() |
Автор: Ignat 23.6.2005, 15:32 | ||
Я же просил ![]() |
Автор: Royan 23.6.2005, 20:21 |
За границы вопроса это не выходит, но поясню вот что. Любой постфиксный инкремент, выполняется посредством префиксного. Это означает, что постфиксный инкремент будет работать ВСЕГДА медленнее. |
Автор: En_t_end 23.6.2005, 22:08 |
Ignat А че эта на меня так навалились ? Я как оказалась вобще чел отсталый со всеми своим книженциями: "С++ для чайников" - читаю вот теперь Страуструпа, да protected его m_members. |
Автор: AISIN 24.6.2005, 19:05 | ||||
Да не че не будет! |
Автор: Ignat 27.6.2005, 08:20 | ||
AISIN Во-первых, вопрос задан не Вам. Во-вторых, ответ можно было написать без грамматических ошибок. В-третьих, что-то всё-таки будет. В-четвертых, если уж отвечаете, то пояснили бы почему. |
Автор: AISIN 12.7.2005, 09:46 |
Вот такая фишка i++ или i-- возвращает константу! А значит эти операторы невозможно применить несколько раз подряд! Зато префиксная форма (--i или ++i) возвращаетссылку на переменную! и вот такая запись будет ++--++i корректна! P.S. За ошибки извиняюсь! Ну, двойка у меня по русскому языку! Чё мне теперь застрелиться что ли! |
Автор: LP 12.7.2005, 12:28 | ||
Неопределенное поведение. Оператор << не является точкой следования. |
Автор: pablo 12.7.2005, 12:39 | ||
ничего кроме ошибки во время компиляции там не будет. |