【发布时间】:2011-11-01 03:28:34
【问题描述】:
我正在研究库函数strcpy 的可能实现方法。它是:
void strcpy(char *src, char *dest)
{
while (*dest++ = *src++)
;
}
如果不检查'\0',这怎么可能工作??
【问题讨论】:
-
如果 *src =="\0" 它会在一段时间内结束。不是吗?
-
您将变量切换为正确的,但对于标准库,参数应该按
dest, src的顺序排列。这就是他们为strcpy、strcat、memcpy、memmove等做的事情。 -
另外,您应该将
src设为const char *以表明它不会被写入。