C++交换指针实例

2020-01-06 13:04:40王旭
  •     int *pi=&i,*pj=&j;      cout<<"i : "<<i<<"tj : "<<j<<endl; 
  •     cout<<"*pi : "<<*pi<<"t*pj : "<<*pj<<endl;      cout<<"pi : "<<pi<<"tpj : "<<pj<<endl<<endl; 
  •     ptrSwp(pi,pj);      cout<<"i : "<<i<<"tj : "<<j<<endl; 
  •     cout<<"*pi : "<<*pi<<"t*pj : "<<*pj<<endl;      cout<<"pi : "<<pi<<"tpj : "<<pj<<endl; 
  • }  ?

    完整demo示例如下:
     

    1. #include <iostream>    
    2. using namespace std;    
    3. //using pointer  void ptrSwap1(int **pa,int **pb) 
    4. {    int *ptmp = *pa; 
    5.   *pa = *pb;    *pb = ptmp; 
    6. }    
    7. //using reference  void ptrSwap2(int *&pa,int *&pb) 
    8. {    int *pk = pa; 
    9.   pa = pb;    pb = pk; 
    10. }    
    11. int main()  { 
    12.   for(int i=1; i<=3; ++i)    { 
    13.     int a=56,b=78;      int *pa=&a,*pb=&b; 
    14.     cout<<"a : "<<a<<"tb : "<<b<<endl;      cout<<"*pa : "<<*pa<<"t*pb : "<<*pb<<endl; 
    15.     cout<<"pa : "<<pa<<"tpb : "<<pb<<endl;      switch(i) 
    16.     {      case 1: