出错的地方 printf("abcdef,a=%d,b=%s,", "xyz, abc=%s", a, b, abc) 这个代码的原本意思,是输出:”abcdef,a=%d,b=%s, xyz, abc=%s“。因为行太长,想使用双引号的连接字符串功能,但是习惯性的在换行之前,添加了一个逗号,编译没有问题,但是在运行时,由于参数对应错位,导致SegV。 正确的代码是: pri