新手关于字符数组的小疑点

新手求教:关于字符数组的小问题
#include<stdio.h>
#include<string.h>
void main(){
char s1[]="aaa",s2[]="bbb",s3[]="ccc";
  strcat(s1,strcat(s2,s3));
  puts(s1);
  printf("\n");
  puts(s2);
  printf("\n");
  puts(s3); 
  }
执行之后为什么s2和s3的数值发生变化。



------解决方案--------------------
strcat(s1,strcat(s2,s3));
s2没有足够的空间来容纳s3
这个时候程序会崩溃
------解决方案--------------------
strcat函数是向一个字符串后追加字符,字符数组s1、s2、s3的长度都为4(包括结束符),追加字符时会越界,程序崩溃,换成strcpy就没问题
------解决方案--------------------
楼上正解
------解决方案--------------------
2楼貌似正解。
------解决方案--------------------
LS正解!