void swap(int * a,int * b);为什么swap(a,b)有效?

时间:2019-01-03 15:07:44

标签: c++

我的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。为何仍然有效?

0 个答案:

没有答案