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

Вопрос про цикл for - C++

Восстановить пароль Регистрация
 
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 10:54     Вопрос про цикл for #1
Скажите, а есть ли какая-то разница в записях:
C++
1
for (int i=0; i<n; i++)
и
C++
1
for (int i=0; i<n; ++i)
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 10:54     Вопрос про цикл for
Посмотрите здесь:

Вопрос про указатели C++
C++ Вопрос про mkdir
C++ вопрос про указателей
C++ Вопрос про цикл.
C++ Вопрос про outtextxy()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DartDayring
13 / 13 / 5
Регистрация: 10.02.2010
Сообщений: 72
12.04.2010, 11:05     Вопрос про цикл for #2
Разница есть: ++i увеличивает значение. а потом возвращает его. i++ возвращает значение, а затем увеличивает его.
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 11:05  [ТС]     Вопрос про цикл for #3
Это понятно. Но применительно к циклу for - есть разница?
Lаmer
7 / 7 / 4
Регистрация: 24.03.2010
Сообщений: 25
12.04.2010, 11:06     Вопрос про цикл for #4
Разница есть. Префиксная и постфиксная форма инкремента. В префиксной - сначала модифицируется параметр, затем выполняются действия. В постфиксной - наоборот - сначала выполняются действия, затем модифицируется параметр.
DartDayring
13 / 13 / 5
Регистрация: 10.02.2010
Сообщений: 72
12.04.2010, 11:07     Вопрос про цикл for #5
Цитата Сообщение от ivpoed Посмотреть сообщение
Но применительно к циклу for - есть разница?
разница есть
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 11:15  [ТС]     Вопрос про цикл for #6
Просто сколько пробовал в разных циклах менять ++i на i++ - результат один и тот же.
Внутри цикла счётчик (int i) те же значения принимает в одинаковые итерации циклов.
В чём тогда различие с точки зрения цикла?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
12.04.2010, 11:22     Вопрос про цикл for #7
DartDayring, Lаmer, ivpoed, если в форе кроме этих трех действий указать еще четвертое, пятое и т.д., которые учитывают значение i то разница есть. Если в форе нет дополнительных действий то для тела фора разницы нету. Посмотрите программу
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
int main()
{
    int i;
    for(i = 0; i < 10; std::cout<<++i<<'\t')
        std::cout<<"for "<<i<<std::endl;
    std::cout<<'\n'<<std::endl;
    for(i = 0; i < 10; std::cout<<i++<<'\t')
        std::cout<<"for "<<i<<std::endl;
    return 0;
}
Результат
Код
for 0
1       for 1
2       for 2
3       for 3
4       for 4
5       for 5
6       for 6
7       for 7
8       for 8
9       for 9
10

for 0
0       for 1
1       for 2
2       for 3
3       for 4
4       for 5
5       for 6
6       for 7
7       for 8
8       for 9
9
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 11:51  [ТС]     Вопрос про цикл for #8
Вот оно как. Понял, спасибо!
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
12.04.2010, 14:38     Вопрос про цикл for #9
Цитата Сообщение от ivpoed Посмотреть сообщение
Скажите, а есть ли какая-то разница в записях:
Which is more efficient: i++ or ++i?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2010, 19:07     Вопрос про цикл for
Еще ссылки по теме:

C++ Вопрос про конструктор
Вопрос про friend C++
Вопрос про char C++

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

Или воспользуйтесь поиском по форуму:
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
12.04.2010, 19:07     Вопрос про цикл for #10
При организации цикла на целочисленных переменных разницы нет. Если же использовать хитронавороченные итераторы и аналогичные объекты, стоимость копирования/уничтожения которых может оказаться велика, надо использовать ++i (почему - объясняется по приведённой rangerx ссылке). Многие пишут ++i в любом случае, даже с целочисленными переменными, для единообразия и выработки привычки писать правильный инкремент.
Yandex
Объявления
12.04.2010, 19:07     Вопрос про цикл for
Ответ Создать тему
Опции темы

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