请高手解惑
#include<stdio.h>
char *strcpy1(char *strDest,const char *strScr)
{
assert((strDest!=NULL)&&(strScr!=NULL));
char *address=strDest;
while ((*strDest++=*strScr++)!='\0')
NULL;
return address;
}
void main()
{
char *strDest="hello";
char *strScr="world";
strcpy1(strDest,strScr);
}
[解决办法]
也不知道LZ有什么问题~,,那么我就来说几句~。。
#include <stdio.h>#include <assert.h> //要使用断言,请包含assert.h头文件char *strcpy1(char *strDest,const char *strScr){char *address=strDest; //在C语言中,变量声明要放在一切语句之前。。。原来的方法会提示address没声明assert((strDest!=NULL)&&(strScr!=NULL));while ((*strDest++=*strScr++)!='\0');//没有必要加NULL,直接分号空语句,OK //还有上面的 (*strDest++ = *strScr++)!='\0 中间可能会引起歧义++ 和 += 容易混淆,建议加上空格return address;}void main(){ char *strDest="hello"; //这里的strDest和strScr是字符串常量,放在静态存储区,不可以加以修改,否 则会发生未定义的现象 char *strScr="world"; strcpy1(strDest,strScr); }