C if(!(* dest ++ = * src ++))返回ret意味着什么?

时间:2017-02-23 22:49:05

标签: c

我正在尝试引导strncat函数。我理解它的大部分内容并且可以用不同的方式编写,但我无法弄清楚如何编写更长版本的while (!(*dest++ = *src++))

char *_strncat(char *dest, char *src, int n)
{
    char *ret = dest;
    while (*dest) /* same as: while (dest[0] !- '\0') */
    {
        dest++; /* w. each loop, array is shifted left until it's empty */
    }
    while (n != 0)
    {
         if (!(*dest++ = *src++)) /* <=========here */
            return ret;
        n--;
    }
    *dest = 0;
    return (ret);
}

有人可以展示并解释如何扩展该行,以便我可以指导它并了解它是如何工作的吗?谢谢!

0 个答案:

没有答案