下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")为什么不是7."abcABCD"?急

来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/03 22:30:23
下面程序段的运行结果是().char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")为什么不是7."abcABCD"?急下面程序段的运行

下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")为什么不是7."abcABCD"?急
下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")
为什么不是7."abcABCD"?急

下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")为什么不是7."abcABCD"?急
halps 说得有道理
strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
char * strDestCopy=strDest; //[3]
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}

函数把‘\0’也拷贝进去了的,而strlen也是取得‘\0’之前的