用 C 编写的字符串复制函数有两个版本。我的问题是为什么 version1 需要 "!= '\0'" 而 version2 不需要。如果我有一个字符 0 要使用 version2 复制,'0' 会终止应对过程吗?
void version1(char to[], char from[])
{
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
char *version2(char *dest, const char *src)
{
char *addr = dest;
while (*dest++ = *src++);
return addr;
}
另外,为什么像“1230456”这样的输入不会终止处理,因为字符串中间出现了“0”?