swap的功能就是个简单交换两个数的值
在主函数中调用
swap(array[j-1],array[j--]);
那真正传递的什么参数呢?
关于这个问题和ACM群里的大牛们讨论完并真正测试后,得到争取结论:
函数传递都是从后往前传的,就是第一个参数最后传,最后一个第一个传,所以是先传array[j],
然后j=j-1,再传第一个array[j-1],所以如果开始j是5,那么swap函数传进去的是
swap(array[3],array[5]);
下面是验证过程:
int a[]={1,2,3};
int j;
j = 2;
swap(a[j-1],a[j--]);
cout<<a[0]<<a[1]<<a[2];
运行结果是321,也就是把array[0]和array[2]交换了。