当你想在函数中修改参数值的时候,就在对应的形参前加&.这是引用传递,表面上看起来传的时实参值,实际上传的是实参的指针,这才是真正的"指针传递"
应该这样声明void swap(int& x,int &y);像你那样声明的话在函数调用的时候只会传实参的拷贝进去。当你在函数体里要改变参数的值时,就将函数参数类型声明为引用或者指针,这样函数体里对参数的操作才能修改参数。
参考词条"引用"