strcpy的返回值有关问题

strcpy的返回值问题

char *strcpy(char *strDest,const char *strSrc) 

  assert((strDest!=NULL)&&(strSrc!=NULL)); 
  char *address=strDest; 
  while((*address++=*strSrc++)!='\0'); 
  return strDest; 


如上面的代码,请问这么返回strDest有问题吗?而且为什么strcpy需要返回值,林锐《高质量C++编程指南》说过这只是为了增加灵活性如支持链式表达

------解决方案--------------------
没有看出来问题,貌似源码也是这么做的
strcpy不返回值当然没有问题,好像现在大部分人都不会用那个“链式表达式”
------解决方案--------------------
像有些函数还返回一个bool的值..很正常啊 ...
cin函数输出后还要返回一个cin呢..
------解决方案--------------------
我觉得可以改进的地方:strDest,strSrc出现重叠的情况,至少用某种方式给出提示
------解决方案--------------------
assert 只在debug 下有效