void strcpy(char* p1,char* p2)
{
while(*p1++=*p2++) ;
}
我看不出这函数的停止条件
那位高人解释一下

解决方案 »

  1.   

    while(a=b);条件是 b != 0
      

  2.   

    支持zzz3265(zzz)这个函数的意思就是p2这个指针所指的字符串拷贝到p1这个字符串去.举个例子
    p1指向"123456"
    p2指向"abc"
    那么执行这个函数之后
    p1指向了"abc456"
    :)
      

  3.   

    char* 是以\0结尾的字符串,while(*p1++=*p2++) ;p1++指针增加,当*p1++=*p2++=\0时函数停止
      

  4.   

    *p1++=*p2++  ->  *p1++==*p2++ 
    因为=号总是赋值成功,所以返回真 求相等用==
    是这样的要求吗?..
      

  5.   

    上面的都说错了,举个例子
    p1指向"123456"
    p2指向"abc"
    那么执行这个函数之后
    p1指向了"abc456
    ....
    P1指向的应该是"abc",因为最后一次当while内的值得到0时已经进行了赋值操作,然后才得到了 这个赋值表达式的值.