解释如下:
ss初始值: '1' '2' '3' '4' '5' '\0' '\0' '\0' '\0' '\0'
gets(ss),输入ABC后,ss变为
ss的内存值: 'A' 'B' 'C' '\0' '5' '\0' '\0' '\0' '\0' '\0'
strcat(ss,"6789")把6789追加在ss的后面,位置从ss中的第一个'\0'开始,strcat(ss,"6789")后,
ss的内存值: 'A' 'B' 'C' '6' '7' '8' '9' '\0' '\0' '\0'
所以printf的时候,显示ss的值为ABC6789
ABC6789
gets(ss)输入ABC 会覆盖ss的初始值
然后 strcat(ss,"6789") 是在ABC之后添加6789
结果就是ABC6789
被gets(ss)输入的ABC覆盖掉了啊。gets输入时带字符串结束符的。strcat是在字符串后面加上6789,所以最后输出是ABC6789。这里字符串的标志是ABC后面的字符串结束符,所以6789是加在ABC后,结束符之前