Проходя через K & R, я увидел следующий фрагмент кода функции strcopy, которая копирует массив символов в другой.
Если t - указатель на первый массив, а s - указатель на массивв который копируется t код:
void strcopy(char *s, char *t){
while(*s++=*t++)
;
}
Я запутался в цикле while.Я понимаю, что внутри условия t копируется в s, но я не понимаю, какое условие здесь проверяется.Когда *t++
будет ложным (или нулем)?Предположительно, когда строка символов заканчивается.Мы можем проверить, завершена ли строка, проверив, указан ли символ, на который указывает * '\0'
.K & R говорит так же.Но тогда в книге довольно беспечно указывается, что этот тест не нужен.Поэтому мне интересно, что здесь тестируется?