>если я правильно понимаю, то дело тут в:
>оператор ++ имеет больший приоритет чем *, поэтому когда дело доходит, до
>разименовывания (*), сначала выполняется ++ и указатель успевает увеличиться. Ну, типа того, только приоритет тут не причём.
Там (в первом варианте) дело в том, что и инкремент, и разимновывание выполняются до проверки (=во время вычисления) условия цикла, перед выходом из него, в частности. Т.о. когда условие в первом варианте выпоняется ("под указателем" NUL), указатель уже сдвинулся этим самым инкрементом ("первый" NUL попал в вых.строку).
О чём и ответили чуть выше.