Причина в том, что гораздо проще написать правильный код.
Когда разница указателей между последовательными элементами массива равна 1, вы можете использовать ++p
для обхода массива (при условии p
- указатель на элемент). Например:
int a[10];
for (auto p = a, e = a + 10; p != e; ++p)
*p = 42;
Обратите внимание, что код не должен иметь дело с размером элементов. Если тип массива изменится с int
на double
, код менять не нужно и он по-прежнему правильный.