Re: Вопрос по while ();
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.08.10 15:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>while (*pw1++ = pw2++);


Вы звездочку перед pw2 не забыли?

А>По идее, сначала в цикле вынимается содержимое *pw2, но оно уже равно нулю, делее продолжения быть не должно,

А>но все-таки строки копируются с завершающим нулем из *pw2

Потому что сначала вычисляется выражение *pw1++ = *pw2++, значением которого является то, что лежало по адресу *pw2, а побочными эффектами — увеличение указателей и копирование WCHAR'а из *pw2 в *pw1. Если там лежал ноль, то продолжения не будет, но ноль таки скопируется.

Я, кстати, циклы с пустым телом предпочитаю писать так:

while( *pw1++ = *pw2++ )
    ;


Сразу видно, что это цилк с пустым телом, а не странная описка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.