Форум программистов, компьютерный форум CyberForum.ru

Прединкремент и постинкремент в цикле for - C++

Восстановить пароль Регистрация
 
Bagdosha
Сообщений: n/a
24.02.2013, 17:35     Прединкремент и постинкремент в цикле for #1
Всем привет!
Пытаюсь сам себе ответить на вопрос, есть ли разница в использовании пред- и постинкремента в цикле for. Т.е. циклы:
C++
1
for (a=0; a<10; a++);
и
C++
1
for (a=0; a<10; ++a);
идентичны или нет? Я не смог найти разницы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 17:35     Прединкремент и постинкремент в цикле for
Посмотрите здесь:

Какая операция быстрее, постинкремент, или преинкремент? C++
Ошибка в цикле C++
Ошибка в цикле C++
Ошибка в цикле C++
Ошибся в цикле for C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
24.02.2013, 17:39     Прединкремент и постинкремент в цикле for #2
В обоих случаях просто происходит увеличение переменной на 1, а возвращаемое значение этой операции не используется. Так что разницы в логике не будет.

Другое дело, если использовать возвращаемое значение: x = a++ и x = ++a - будет разница.
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
24.02.2013, 17:40     Прединкремент и постинкремент в цикле for #3
в этом случае да операция инкримента выполняется в конце каждого цикла и в следуещем "кольце" цикла переменая уже увеличена
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.02.2013, 17:42     Прединкремент и постинкремент в цикле for #4
результат работы - идентичный
эффективность - зависит от типа переменной а, для встроенных типов всё равно, для пользовательских 2-й вариант предпочтительнее
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.02.2013, 17:49     Прединкремент и постинкремент в цикле for #5
Цитата Сообщение от Bagdosha Посмотреть сообщение
идентичны или нет? Я не смог найти разницы.
В данном случае идентичен. И, скорее всего, при оптимизации a++ будет интерпретироваться так же как ++a, т.к. стоит вне выражения.
Bagdosha
Сообщений: n/a
24.02.2013, 17:50     Прединкремент и постинкремент в цикле for #6
Цитата Сообщение от Jupiter Посмотреть сообщение
для пользовательских 2-й вариант предпочтительнее
т.е. ++a ? (я просто напутал - в заголовке написал сначала предикремент, а потом уже постикремент, а в коде наоборот)
Всем спасибо за оперативные ответы!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2013, 17:54     Прединкремент и постинкремент в цикле for
Еще ссылки по теме:

Присвоение в цикле C++
Рекурсия в цикле C++
C++ Си++ (прединкремент и постинкремент)?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.02.2013, 17:54     Прединкремент и постинкремент в цикле for #7
Цитата Сообщение от Bagdosha Посмотреть сообщение
т.е. ++a
ага, не требуется создания временной переменной
Yandex
Объявления
24.02.2013, 17:54     Прединкремент и постинкремент в цикле for
Ответ Создать тему
Опции темы

Текущее время: 01:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru