问题描述
- stringcopy 问题,下面情形,为什么用1可以,2却得不到返回值!
-
char* Mystr(char* DestSrc,char* Str)
{
assert(DestSrc!=NULL||Str!=NULL);
char *p=DestSrc;
// 1 .while ((*DestSrc++=*Str++)!='');
// 2. while ((*p++=*Str++)!='');return p;
}
解决方案
因为2中会修改p,所以最后返回的时候p已经不是字符串开始位置了。
而1修改的是DestSrc。所以返回p可以。
解决方案二:
事实上返回p纯属多余,因为DestSrc是用户传进来的,用户必然知道
你看strcpy的代码,无需返回
时间: 2024-09-13 08:44:34