在K&R C编程书中,我遇到了这个用于字符串复制的代码片段:
/* strcpy: copy t to s; pointer version 3 */
void strcpy(char *s, char *t)
{
while (*s++ = *t++)
;
}
Run Code Online (Sandbox Code Playgroud)
这正确地复制了两个字符数组(当然它确实如此).我的问题是,为什么它的工作方式呢?里面似乎没有任何条件检查.有一个作业和一个后期增量.我的直觉是这总是评估为真(类似于while(1)总是评估为true,我们需要在某个地方休息以摆脱循环.
循环内部也没有任何东西.没有绑定检查,没有ifs,没有.这对我来说似乎非常危险和鲁莽.有人可以带我走过这个吗?谢谢.
| 归档时间: |
|
| 查看次数: |
1002 次 |
| 最近记录: |