[求助]一个问题想不通 ~
程序:
#include <cstdlib>
#include <iostream>
using namespace std;
void swap(int *px,int *py){ //…………1
int tmp;
tmp=*px;
*px=*py;
*py=tmp;
}
void swap(int &px,int &py){ //…………2
** int tmp;
tmp=px;
px=py;
py=tmp; **
}
int main()
{
int a=2;int b=3;
swap(a,b);
cout <<a<<" "<<b<<endl; //3 2
swap(&a,&b);
cout <<a<<" "<<b<<endl; //2 3
system("PAUSE");
return EXIT_SUCCESS;
}
原程序正确的运行结果为:3 2 2 3
可是当加 ** 部分还没加进去的时候却是2 3 3 2
也就是说 ** 没加进去的时候是函数1被swap(&a,&b)调用而 ** 部分加进去之后是被swap(a,b)调用,我是菜鸟请高手指点迷津,不胜感激!
[此贴子已经被作者于2006-8-22 23:00:13编辑过]