这是一段strcat的模拟实现代码
char* my_strcat(char* dest, const char* src)
{
assert(dest && src); //断言防止空指针
char* ret = dest; //初始地址赋值给临时变量
while (*dest != '\0') //目标值移动到末尾
dest++;
while (*dest++ = *src++); //末尾追加src的字符
return ret; //返回dest的初始地址
}
int main()
{
char str1[20] = "hello,";
char str2[] = "world!";
my_strcat(str1, str2);
printf("%s", str1);
return 0;
}
*为什么函数里的第一个while循环不可以while(dest++)?,直接省去while内部++,但是这样会报错,反而第二个while循环却可以
//我是想把第一个while这样改的,但是会报错
while(*dest++);//把目标字符串移动到最后一位
//第二个却可以
while(*dest++=*src++);//这是在dest后面追加字符