strcat()函数执行是把字符串b连接到字符串a的后边,也就要求字符串a要足够长,能装下b,而你这样定义的字符串a和b都是字符串字面量,也叫着字符串常亮,很明显前边字符串长度是固定的4字节,不仅不够增加后边字符串长度而且还是不可修改的,所以运行一定出错,要是在linux下运行将产生一个段错误。修改可以把a定义成这个样子:char a[10] = "tom";