【发布时间】:2008-10-29 14:54:17
【问题描述】:
看看这个将一个 c-string 复制到另一个的循环:
void strcpyr(char *s, char *t)
{
while(*s++=*t++)// Why does this work?
;
}
为什么我们不在 while 循环中检查 '\0' 字符,像这样?
while((*s++=*r++)!='\0')..
第一个循环如何终止?
【问题讨论】:
-
请阅读有关降价以及如何在您的问题中输入代码的信息。基本上,在每行代码之前放置四个空格。
-
标记的作业,可能有点苛刻?
-
公共服务:像这样复制字符串是不安全的(没有边界检查)。任何“严肃”或“生产”代码都应该(通常)使用更安全的方法。就个人而言,我认为代码类型也更加努力变得聪明。