#cpp
У нас есть функция которая принимает две строки и производит слияние void strcat(char *to, const char *from) { while (*to) to++; while (*to++ = *from++); } Почему здесь не требуется добавить нулевой символ в отличие например от такого кода void strcat(char *to, const char *from) { while (*to != '\0') { to++; } while (*from != '\0') { *to = *from; from++; to++; } *to = '\0'; }
Ответы
Ответ 1
Нулевой символ здесь добавляется автоматом. Выражение *to++ = *from++ выполняет присвоение, после чего возвращает новое значение *to. То есть, сначала ноль скопируется из *from в *to, а уж потом он будет проанализирован в while, который прекратится.
Комментариев нет:
Отправить комментарий