swap(int *,int *)在使用和不使用"&"运算符时调用时显示不同的行为

时间:2015-06-10 06:12:36

标签: c++ pointers

我在选择排序程序中使用以下代码来交换值。当我传递像 swap(a [min],a [j])这样的参数时,它会交换值,但不会。 t增加&#34;交换&#34; 变量。 但是当我传递像 swap(&amp; a [min],&amp; a [j])这样的参数时,它会交换值并增加&#34;交换&#34; < / strong>变量。我没有得到引擎盖下发生的事情 我正在使用minGW编译器。

void swap(int *x,int *y)
{
swaps++;
int temp;
temp=*x;
*x=*y;
*y=temp;

}

1 个答案:

答案 0 :(得分:6)

使用swap(a[min],a[j])时,您最有可能致电std::swap

的另一个原因
using namespace std;