猿问

怎样理解“strcat在使用时s1与s2指的内存空间不能重叠”

小雾3378873
浏览 2187回答 3
3回答

super_mb

我觉得strcat函数的功能应该是这样实现的:while(*s1)  //读到s1的结尾{        s1++;}while(*s1++ = *s2++)  //将s2拼接到s1后面{        NULL;}照上面的代码来看,如果s1和s2内存空间是重叠的,那么s2和s1的结尾肯定是一样的,则当你把s2的每一个字符加到s1后,s2本身最后也会加上这个字符,于是第二个循环会一直循环下去。 所以规定不能重叠吧。

慕村2869945

strcat
随时随地看视频慕课网APP
我要回答