自定义copy函数的一个问题!! 求助!!

[复制链接]
查看11 | 回复1 | 2011-7-1 05:48:27 | 显示全部楼层 |阅读模式
char*mycpy(char*strDest,constchar*strSrc)
{
        assert((strDest!=NULL)
        char*p=strDest;
        while((*strDest=*strSrc)!=\'\\0\');//这句是什么意思
        {
        }
        returnp;
}
voidmain()
{
        chara[10]=\"aa\";
        charb[10]=\"b\";
        mycpy(a,b);
        printf(a);
}
这里的答案为什么不是ba而是b
while((*strDest=*strSrc)!=\'\\0\');//这句话是怎么判断不等于\'\\0\'的?是怎么实现正确复制的?
回复

使用道具 举报

千问 | 2011-7-1 05:48:27 | 显示全部楼层
while((*strDest=*strSrc)!=\'\\0\');//这句的*strDest=*strSrc是一个赋值语句,(每个字符数组最后一位都是以\"/0\"结束的)从函数看是将指针strSrc所指的字符数组逐个复制到strDest所指字符数组中,(即将指针后移一位,指向下个要复制的字符,函数返回的是strDest所指字符数组的首地址;while结束的时候指针已经指向null了,输出的时候字符串一遇到\"/0\"就结束了(即结束时a[]=b/0a/0,这样就不能输出a了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行