![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Алина |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 14.5.2005 Репутация: нет Всего: нет |
Если кто-нибудь может, объясните пожалуйста, как будет работать следующий фрагмент кода:
Выводит два числа: 6, 8 Как будет работать
Чем отличаются ++i и i++? Чему будет равно значение переменной после выполнения этой команды? А если ее использовать в cout<<i++<<" "<<i;? |
||||
|
|||||
En_t_end |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
++i - унарная операция прибавления еденицы, то есть возвращает i+1. i++ - то же самое, но возвращает сначала i, затем увеличивает её на 1. То есть в результате работы этого кода:
Вот что будет в "консоле: 5 6"
Здесь все аналогично, правда присутсвтует приритет скобок, и еси я не ошибаюсь, в первой и последней итерации будет : "консоль: 7" |
||||||
|
|||||||
Ignat |
|
||||||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 3 Всего: 73 |
Нет, ответ был указан выше: 6, 8. Постфиксный инкремент имеет более высокий приоритет, чем префиксный, поэтому поставлены скобки. Т.е. этот кусок выполнится в две итерации в консоль пойдет 6, НО i=7 после первой итерации. Аналогично будет выполнена вторая итерация. En_t_end, скажи, что будет результатом строчек ![]()
Чур, не подсказывать ![]() -------------------- Теперь при чем :P |
||||||
|
|||||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Скобки поставлены не только из-за приоритета, а еще и ... тс! ... (велено не подсказывать) ![]() -------------------- ... |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 3 Всего: 73 |
Я же просил ![]() -------------------- Теперь при чем :P |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
За границы вопроса это не выходит, но поясню вот что.
Любой постфиксный инкремент, выполняется посредством префиксного. Это означает, что постфиксный инкремент будет работать ВСЕГДА медленнее. Это сообщение отредактировал(а) Royan - 24.6.2005, 11:34 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Ignat
А че эта на меня так навалились ? Я как оказалась вобще чел отсталый со всеми своим книженциями: "С++ для чайников" - читаю вот теперь Страуструпа, да protected его m_members. Это сообщение отредактировал(а) En_t_end - 23.6.2005, 22:09 |
|||
|
||||
AISIN |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 27.1.2005 Где: Пушкино Репутация: нет Всего: 1 |
Да не че не будет! --------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002% |
||||
|
|||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 3 Всего: 73 |
AISIN Во-первых, вопрос задан не Вам. Во-вторых, ответ можно было написать без грамматических ошибок. В-третьих, что-то всё-таки будет. В-четвертых, если уж отвечаете, то пояснили бы почему. -------------------- Теперь при чем :P |
|||
|
||||
AISIN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 27.1.2005 Где: Пушкино Репутация: нет Всего: 1 |
Вот такая фишка i++ или i-- возвращает константу!
А значит эти операторы невозможно применить несколько раз подряд! Зато префиксная форма (--i или ++i) возвращаетссылку на переменную! и вот такая запись будет ++--++i корректна! P.S. За ошибки извиняюсь! Ну, двойка у меня по русскому языку! Чё мне теперь застрелиться что ли! --------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002% |
|||
|
||||
LP |
|
|||
Unregistered |
Неопределенное поведение. Оператор << не является точкой следования. |
|||
|
||||
pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
ничего кроме ошибки во время компиляции там не будет. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |