C++ swap(int*,int*)在使用和不使用“swap”时显示不同的行为&&引用;操作人员

C++ swap(int*,int*)在使用和不使用“swap”时显示不同的行为&&引用;操作人员,c++,pointers,C++,Pointers,我在选择排序程序中使用以下代码来交换值。当我传递像交换(a[min],a[j])这样的参数时,它交换值,但不增加交换变量。 但是当我传递像swap(&a[min],&a[j])这样的参数时,它交换值并增加“swaps”变量。我不知道引擎盖下发生了什么。 我正在使用minGW编译器 void swap(int *x,int *y) { swaps++; int temp; temp=*x; *x=*y; *y=temp; } 当您使用swap(a[min],a[j])时,您很可能正在调用std

我在选择排序程序中使用以下代码来交换值。当我传递像交换(a[min],a[j])这样的参数时,它交换值,但不增加交换变量。 但是当我传递像swap(&a[min],&a[j])这样的参数时,它交换值并增加“swaps”变量。我不知道引擎盖下发生了什么。
我正在使用minGW编译器

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

}
当您使用
swap(a[min],a[j])
时,您很可能正在调用
std::swap
。另一个避免的理由

using namespace std;

您有一个
使用名称空间std,是吗?是的,实际上我不知道名称空间有自己的交换。谢谢,现在我知道了,谢谢。