为什么没有输出,我这种交换有什么问题吗?详细解释一下,thankyou 了

img


为什么没有输出,我这种交换有什么问题吗?我不理解,详细解释一下,thankyou 了

交换函数写的没有问题。出问题而是在你填入交换函数的第二个参数。
a是数组首元素地址,a+i是数组最后一个填入元素的下一个数据的地址。那么a+i这个时候指向的是字符串结束标志\0。所以你的代码实际上是把数组的第一个元素和最后一个元素\0进行了交换。
puts准备输出你的字符串时,交换后第一个数据就将为\0,所有puts认为字符串读取结束,于是没有输出