我的swap
函数的原型是void swap(int *a, int *b)
;为什么在我调用swap(a, b)
和a
是整数的b
时调用它?
#include <iostream>
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
using namespace std;
int a = 9, b = 8;
cout << "before swap:" << endl;
cout << a << '\t' << b << endl;
swap(a, b);
cout << "after swap:" << endl;
cout << a << '\t' << b << endl;
cin.get();
return 0;
}
before swap: 9 8 after swap: 8 9
我知道应该swap(&a,&b)
来调用函数swap
。为何仍然有效?