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;
}
最佳答案
在 C 中,值 0 表示假,任何其他值表示真。字符串以值为 0 的空字符结尾。此 while 循环将所有字符从 s 复制到 d,直到到达空字符(字符串结尾)。
赋值 *d++ = *s++
返回与 *s++
赋值给 *d
相同的值
在循环之后,s
和d
都将指向空字符之后。注意 null 也被复制了。
关于c - 奇怪的 while 循环。困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38153313/