代码是否交换数组的两个数字?

时间:2019-03-26 18:29:53

标签: c++

实际参数中应包含一个'&',以提供所需的结果,但是以下代码也可以正确交换数字。

void swap(int *a, int *b){

    int t=*a;
    *a=*b;
    *b=t;

}

//there is an array ar[]
swap(ar[0],ar[1]);

它应该给出一些垃圾值,但是给出正确的答案。

1 个答案:

答案 0 :(得分:0)

函数调用实际上是在调用库定义的std::swap函数,而不是您的自定义交换函数(由于类型不匹配)。

更改函数的名称,看看它是否可以编译。