#include <iostream.h>
void swap(int *&p1,int *&p2)
{
  int *temp;
  temp=p1;
  p1=p2;
  p2=temp;
}
void main()
{
int a,b;
int *pointer1,*pointer2;
cin>>a>>b;
pointer1=&a;
pointer2=&b;
swap(pointer1,pointer2);
cout<<a<<" "<<b<<endl;
}

解决方案 »

  1.   

    上面是交换指针,但是a,b没有交换,要交换ab要
    #include <iostream.h>
    void swap(int *p1,int *p2)
    {
      int *temp;
      *temp=*p1;
      *p1=*p2;
      *p2=*temp;
    }
    void main()
    {
    int a,b;
    int *pointer1,*pointer2;
    cin>>a>>b;
    pointer1=&a;
    pointer2=&b;
    swap(pointer1,pointer2);
    cout<<a<<" "<<b<<endl;
    }
      

  2.   

    void swap(int *p1,int *p2)
    {
      int *temp;
      temp=p1;
      p1=p2;
      p2=temp;
    }
    这个函数只是在内部把传进来的参数值互换了,对于调用方当然没有任何影响。
    最小的改动方案是把参数声明改一下:
    void swap(int* &p1,int* &p2)
      

  3.   

    楼上方法也不行吧,只能交换pointer1和pointer指向的内容,a和b的值还是没变吧。