2016-07-20 3 views
-2

Это очень обсуждаемый вопрос, однако мое сомнение заключается в том, что в C, * t ++ эквивалентно * (t ++), поскольку приоритет ++ (оператор post increment) больше *. Поэтому в while (* t ++ = * s ++); не будет пропущен первый символ при копировании с s на t; Чтобы сделать это лучше, будет ли копия выполняться перед оператором инкремента или после этого и почему?* t ++ = * s ++; String copy

+0

Вы можете написать тестовую программу и узнать ее самостоятельно ... – John3136

ответ

2

Нет, первый символ не будет пропущен. Результатом оценки t++ (post-increment) является значение t до того, как произошло приращение, поэтому разыменование указателя переходит в позицию, указанную до того, как было увеличено значение t. Вы можете использовать оператор pre-increment (++t) для увеличения t и получения значения после приращения.

Смежные вопросы