嘿伙计们,我想弄清楚 strcat() 是如何返回指针的,所以我尝试实现自己的 strcat() 来看看它是如何工作的。以下是我的 mystrcat() 代码,它的工作方式类似于真正的 strcat():
char *mystrcat(char *destination, char *source)
{
char *str = destination;
while (*str != '\0')
{
str++;
}
while (*source != '\0')
{
*str = *source;
str++;
source++;
}
*str = '\0';
return str;
}
所以让我们在我的 main() 中说,我有
char string[BUFSIZ];
mystrcat(string, "hello");
printf("%s\n", string);
输出将是
hello
正如预期的那样。我没有得到的是返回局部变量str的地址如何神奇地使变量string指向它,以及为什么当函数终止时变量str没有被删除。