- 此问题在此处已有答案**:
(17个答案)
3天前关闭.
char *_strcat(char *dest, char *src)
{
char *temp = dest;
while (*dest)
dest++;
while (*src)
*dest++ = *src++; ====> this line
*dest = '\0';
return (temp);
}
我不理解上面指定的代码行;它是同时更新dest
的值和地址,还是只更新值。还有这里的主要逻辑是什么。我迷路了!
1条答案
按热度按时间9bfwbjaz1#
++
运算符的优先级高于*
运算符,但由于++
(在表达式中)使用操作数的旧值,因此部分:首先解引用
src
指针,初始化dest
指向的内存地址,然后将两个指针都递增1
以指向下一个字符。在循环中,它将
src
的内存内容复制到dest
。这和做是一样的
或者