|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
25.08.2010, 00:18 | #1 |
Форумчанин
Регистрация: 07.07.2010
Сообщений: 825
|
инкремент и for
Различие префиксальной и постфиксальной формы я вродибы знаю,а есть ли различие в употреблений с оператором for.
Если разница между этими выражениями: for(i=0;i<N;i++); и for(i=0;i<N;++i); |
25.08.2010, 00:33 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Нет разницы.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
25.08.2010, 00:39 | #3 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
В данном случае разницы в работе кода нет, но есть одна маленькая деталь. Поскольку i++ раскрывается как
(t = i, i += 1, t), то здесь у нас возникает локальная копия переменной, которая вообще-то даром никому не нужна, когда можно сразу увеличить нужную переменную. Проблема вроде бы небольшая - памяти жрет мало, да и что может такого произойти, но в особо экзотических случаях, когда вместо типа int используется какой-нибудь пользовательский класс (ну например какой-то очень хитрый итератор), то проблемы с памятью могут быть чуть больше, а уж если у класса будут проблемы с конструктором, тогда вообще весело будет. Это вот такой взгляд вглубь проблемы, подсмотренный в какой-то книжке Мейерса "Effective что-то там" (Кстати, извиняюсь за оффтоп, но никто не помнит, что за книжка? Когда-то читал на компе, потом потерял, и не смог найти такую же - почему-то находились книжки как будто бы с таким же или похожим названием, но явно не идентичные той, что я раньше читал)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
25.08.2010, 10:52 | #4 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
"Наиболее эффективное использование C++" -- у меня такая нашлась, на русском правда, но эта тема в ней есть.
Кстати, есть две книжки с тем же ангельским названием : "More effective C++", но разным содержанием. |
25.08.2010, 11:44 | #5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Там, при переиздании русского перевода второй книги, из названия зачем-то выбросили слово "наиболее". В книге 2000г. оно есть, а в 2006г. - уже нет, отсюда и путаница.
Effective C++...; Перевод; More Effective C++...; Перевод. |
25.08.2010, 13:51 | #6 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 96
|
посмотри на дизассемблерный код операци i++ и ++i, вроде разницы не должно быть, оптимизатор следит за этим.
вот Код:
include <Qt>
Последний раз редактировалось sever-42; 25.08.2010 в 14:03. |
25.08.2010, 13:57 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Если i - объект какого-то класса, то разница будет. Причем не в пользу i++. Если же это char, int или еще какой простой тип, то разницы никакой не будет.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инкремент для указателя массива структур | Valter | Общие вопросы C/C++ | 6 | 31.05.2010 18:30 |
Инкремент константы в цикле, FASM | suicide | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 19.12.2009 21:18 |
использовать оператор цикла, сдвиги и инкремент | Еля | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 16.11.2009 15:04 |
Инкремент и декремент в циклах | Nvidia | Общие вопросы C/C++ | 8 | 17.10.2009 11:54 |
Инкремент и дикремент | Golovastik | Общие вопросы C/C++ | 3 | 16.07.2009 13:39 |