[求助]一个问题想不通 ~
											程序:
#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编辑过]



											
	    

	
