![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Здравствуйте. Имеется массив, в котором данные идут друг за другом:
Код:
Код:
Но если я буду выводить по 2 элемента за раз: Код:
2 - 1 4 - 3 6 - 5 8 - 7 10 - 9 я догадываюсь, что проблема именно в инкрименте "n++", который стоит в качестве элемента массива, и причем дважды, но тем неменее, интересно понять, почему именно так? Ведь кажется все правильно, вывод, сдвиг вперед, вывод, сдвиг вперед. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Чтобы избежать недоразумений, нужно избегать нескольких инкрементов/декрементов одной переменной в одной строке
Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Спасибо. Да, я думал о таком способе, но хотелось упростить код как можно лучше, без лишних обращений к переменным, что бы функция работала быстрее...
Ладно, и еще вопрос по теме. Скажите, а чтение элементов массива не через номер элемента: Код:
Код:
Последний раз редактировалось Артэс; 07.07.2010 в 11:34. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
В теории дя, особенно в многомерных массивах, НО эта быстрота столь незначительна, что на неё можно плюнуть, если в массиве три элемента, а функция вызывается четыре раза за время выполнения программы
![]() |
![]() |
![]() |
![]() |
#6 | |
Новичок
Джуниор
Регистрация: 04.07.2010
Сообщений: 38
|
![]() Цитата:
Код:
Последний раз редактировалось Loji; 07.07.2010 в 11:45. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
интерестно а почему быстрее?
по сути же одно и тоже, что через указатель, что через индекс. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
![]() Цитата:
![]()
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
array[ i ] разворачивается в *( (void*)array + i * sizeof( *array ) ), если всё правильно помню
*array разворачивается в *array ![]() Но опять же, выигрыш есть в многомерных массивах, и да, если он не нужен( а он очень мал ), то нужно пользоваться индексом. Последний раз редактировалось ozo; 07.07.2010 в 12:06. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
А чему равно i+++++i ? Опять же - один фиг, стандартом не определен порядок вычисления этого всего, а следовательно в разных компиляторах будет разный ответ.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод элементов массива.Изменение элементов массива. | Vesnushka18 | Помощь студентам | 6 | 09.06.2011 13:05 |
вывод элементов из массива | kirosin | PHP | 3 | 15.05.2010 13:00 |
вывод элементов массива. PASCAL. | lammy | Помощь студентам | 4 | 01.04.2010 21:45 |
Вывод значения элементов массива | valdemar593 | Общие вопросы C/C++ | 7 | 22.12.2009 21:37 |
Вывод ненулевых элементов массива | Ci_novice | Общие вопросы C/C++ | 2 | 28.12.2007 14:59 |