关于网友提出的“ while dest++ = source++ 是什么意思,能否分解一下”问题疑问,本网通过在网上对“ while dest++ = source++ 是什么意思,能否分解一下”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: while dest++ = source++ 是什么意思,能否分解一下描述:
char *f_strcpy(char *dest ,char * source)
{
while (*dest++ = *source++)
;
return (dest - 1);
}
解决方案1:
return (dest - 1); 返回的是指向'\0'的指针,偶认为是个功能错误。
楼上方法正确的,无论是出口参数,还是返回值都可以得到拷贝后的字符串的首地址
char *f_strcpy(char *dest ,char * source)
{
char* temp = dest;
while (*dest++ = *source++);
return temp;
}
while (*dest++ = *source++)
;
就是
while (((*dest) != '\0') && ((*source) != '\0'))
{
(*dest) = (*source);
++dest;
++source;
}
return dest - 1 这个太奇怪了。
可以解释为:
char *f_strcpy(char *dest ,char * source)
{
while((*dest=*source)!='\0')
{
dest++;
source++;
}
return (dest - 1);
}