数组中交换a[1],a[2]的字符但打出的结果不同,而且为什么第一个运行结果是1,2而不是2,1
这是一个典型的参数传递问题。实参向形参单向传递,形参不能向实参传递。也就是说,你调用swap函数时,a[1]和a[2]的值确实发生了交换,但是这种交换仅限在swap函数内,当swap函数执行完毕后,内存释放后,记录不被保存,所以本质上说,主函数中的a[1]和a[2]并没有发生交换(函数没有将交换结果返回)。解决方法:
swap(&a[1],&a[2]);