新手在c编程。有人能帮我理解while循环在这段代码中做什么吗?我从来没有见过这种类型的while循环。奇怪的循环。困惑
但是,我确实知道它正在执行指针算术,但是它究竟是按照伪代码还是简单的英文来分解呢? :)
char*
cpy (char* s)
{
char *dest, *d;
d = dest = malloc(strlen(s) * sizeof(char) + 1);
if (d)
while ((*d++ = *s++));
return dest;
}
我相信这是复制从一个源到另一个字符串。它的性格是如此。它在一条线上做了很多工作。它将* d设置为* s处的任何内容,并将它们递增到下一个字符。当它最终到达空字符(字符串的末尾)时,它返回它,导致while循环结束。 – ritlew
您是否在K&R书中阅读过此内容?你最好调用'memcpy'来复制一个字符串 –
寻求调试帮助的问题(“为什么不是这个代码工作?”)必须包含所需的行为,特定的问题或错误以及重现它所需的最短代码这个问题本身。没有明确问题陈述的问题对其他读者无益。请参阅:如何创建最小,完整和可验证示例。 – Olaf