strcpy()函数指针问题?

char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
return strDest ;
char *tempptr = strDest ;
}
while( (*strDest++ = *strSrc++) != ‘\0’)
return tempptr ;
改为
while( (*tempptr++ = *strSrc++) != ‘\0’)
return strDest;
指针tempptr不是局部变量吗,函数结束不是销毁了吗,为什么可以返回呢?

隔江千里
浏览 932回答 2
2回答

qq_遁去的一_1

首先你的程序写的就有问题,char *strcpy(char *strDest, const char *strSrc){if ( strDest == NULL || strSrc == NULL)return NULL ;if ( strDest == strSrc)return strDest ;char *tempptr = strDest ;}你根本就没有返回值。

牧羊人nacy

你返回的是tempptr中保存的内存区的地址 也就是作为参数传进来的地址。而指针变量tempptr 本身所占用的内存区和他所指向的内存区不是一回事。销毁的只是tempptr本身所占用的内存区
打开App,查看更多内容
随时随地看视频慕课网APP