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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bagdosha
Сообщений: n/a
#1

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

24.02.2013, 17:35. Просмотров 880. Ответов 6
Метки нет (Все метки)

Всем привет!
Пытаюсь сам себе ответить на вопрос, есть ли разница в использовании пред- и постинкремента в цикле 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++
1)float c; int a=1, b=2; c=a/b; Ответ:0,5 Подскажите, если будет вот так: float c; int a=1, b=2; c=(float )a/b; то...

Какая операция быстрее, постинкремент, или преинкремент? - C++
какая операция быстрее: постинкремент, или преинкремент? и почему? как их можно записать на ассемблере?

Как програмно в цикле не доходя до конца, пропустить шаг в цикле? - C#
Как програмно в цикле не доходя до конца, пропустить шаг в цикле?

При склеивании строк в цикле, уже на пятом цикле возникает переполнение памяти - C Linux
При склеивании строк в цикле, уже на пятом цикле возникает переполнение памяти. Что не так и как правильно сделать? Не пинайте нуба! ...

Переменная, которая только что использовалась в цикле в качестве счётчика в следующем цикле не используется - Delphi
Помогите, пожалуйста. Вот отрывок программы (программа целиком- в архиве): procedure TForm1.Button1Click(Sender: TObject); begin ...

Оптимизирует ли компилятор выражения в цикле типа 90*M_PI или каждую итерацию в цикле считает заново? - C++ Builder
Занялся сабжем по проекту. IDE Builder 2010 1) Оптимизирует ли компилятор выражения в цикле типа 90*M_PI или каждую итерацию в цикле...


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

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

Другое дело, если использовать возвращаемое значение: x = a++ и x = ++a - будет разница.
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
24.02.2013, 17:40     Прединкремент и постинкремент в цикле for #3
в этом случае да операция инкримента выполняется в конце каждого цикла и в следуещем "кольце" цикла переменая уже увеличена
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.02.2013, 17:42     Прединкремент и постинкремент в цикле for #4
результат работы - идентичный
эффективность - зависит от типа переменной а, для встроенных типов всё равно, для пользовательских 2-й вариант предпочтительнее
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
24.02.2013, 17:49     Прединкремент и постинкремент в цикле for #5
Цитата Сообщение от Bagdosha Посмотреть сообщение
идентичны или нет? Я не смог найти разницы.
В данном случае идентичен. И, скорее всего, при оптимизации a++ будет интерпретироваться так же как ++a, т.к. стоит вне выражения.
Bagdosha
Сообщений: n/a
24.02.2013, 17:50     Прединкремент и постинкремент в цикле for #6
Цитата Сообщение от Jupiter Посмотреть сообщение
для пользовательских 2-й вариант предпочтительнее
т.е. ++a ? (я просто напутал - в заголовке написал сначала предикремент, а потом уже постикремент, а в коде наоборот)
Всем спасибо за оперативные ответы!
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
24.02.2013, 17:54     Прединкремент и постинкремент в цикле for #7
Цитата Сообщение от Bagdosha Посмотреть сообщение
т.е. ++a
ага, не требуется создания временной переменной
Yandex
Объявления
24.02.2013, 17:54     Прединкремент и постинкремент в цикле for
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru