64,660
社区成员
发帖
与我相关
我的任务
分享
//1.strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy=strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy; //[5]
}
//对于以上strcpy的实现,为什么要用第[3]句???
//诚望赐教!!!
//如下:如果把第[3]句去掉,在第[5]句时直接返回 strDest,有什么不妥??
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDest; //[5]
}
//百度上说是“忘记保存原始的strDest值,说明答题者逻辑思维不严密。”
//求解