нумерация - это понятие относительное. для чеговека она начинается с 1, а для программы - с 0. в чем проблема при выводе номера человеку делать i+1, в то время как i будет начинаться с 0?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Применительно к циклу принципиальной разницы нет, но первый вариант (с преинкрементом) может быть немного быстрее. Правда, в случае C++ и более сложных объектов, нежели int или какой там тип у i.
во-первых, откуда такое желание делать по-своему? ну вот какая разница, будет понедельник нулем или единицей? если ВСЕ сущности нумеровать ЕДИНООБРАЗНО, то они будут сохранять взаимное соответствие: НУЛЕВОЙ будильник для ПОНЕДЕЛЬНИКА, который ноль... а раньше было ПЕРВЫЙ будильник для ПОНЕДЕЛЬНИКА, который 1.
никакой разницы. но следовать стилю все-таки лучше, чем противостоять ему...
во-вторых, цикл for(A; B; C) всегда работает так: - до начала цикла выполняется список действий А - в начале очередной (в том числе самой первой) итерации проверяется условие В - тело цикла отрабатывает только в том случае, если B не равно нулю - после прогона тела цикла выполняется список действий С - после этого снова проверяется условие В и т.д. до победного конца
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Применительно к циклу принципиальной разницы нет, но первый вариант (с преинкрементом) может быть немного быстрее
Ложное утверждение. Постинкремент и преинкремент различаются тогда и только тогда, когда они используются в выражении, содержащем еще какие-либо члены выражения. Если все выражение состоит только из пост- или пре- (как в примере) , то компилятор сгенерирует один и тот же код для обеих случаев.
По синтаксису С, выбор пост- или пре- инкремента на результирующее значение инкрементируемой или декрементируемой переменной не влияет. А влияет только на то, какое значение будет использовано далее в выражении - до инкремента или после. Если же значение вообще не используется, то и разницы нет.
_________________ Не ошибается только то, кто ничего не делает. Тот, кто признает свои ошибки, на них учится. Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Последний раз редактировалось ptr128 Пн дек 05, 2016 19:36:31, всего редактировалось 1 раз.
Вообще-то я там дальше написал, для каких случаев это не ложно. В C++, если инкремент происходит не с простой переменной, а с экземпляром класса (для которого перегружен оператор инкремента), разница может быть. Связано с копированием экзепляра объекта.
А в случае простых типов - да, в цикле for разницы нет.
ну вот какая разница, будет понедельник нулем или единицей?
Коллега походу покамест не прочуствовал, что этот ноль не просто индекс - а базовый принцип тутошнего Мироздания. Это как таблицу Пифагора называть таблицей умножения. А какие "стихи" выходят из индексов под магией двух делений - целочисленного и по-модулю - ничего лишнего!
_________________ Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения