C++交换指针实例

2020-01-06 13:04:40王旭
易采站长站为您分析C++交换指针实例,针对C与C++交换指针的方法进行了较为详细的对比分析,非常具有实用价值,需要的朋友可以参考下      

本文实例讲述了C++交换指针的方法。。具体分析如下:

通常情况下,我们只是对普通数据进行交换,交换指针的问题很少涉及,这里总结下,也方便我们以后查阅。

首先看下整型两个数据的交换(这个比较简单,就不多介绍了),核心代码如下:
 

  1. void m_swap(int *a,int *b)  { 
  2.      int tmp = *a;       *a = *b; 
  3.      *b = tmp;  } 
?

指针是内存地址,应该也算是整型变量,交换两个指针和交换两个整型变量类似,下面以两种方式进行。

传统C方式:

可以通过传递指向指针的指针来进行交换,核心代码如下:

 

  1. void m_swap(int **a,int **b)  { 
  2.      int *tmp = *a;       *a = *b; 
  3.      *b = tmp;  } 
 

demo示例如下:

 

  1. #include <iostream>  using namespace std; 
  2.   void m_swap(int **a,int **b) 
  3. {      int *tmp = *a; 
  4.     *a = *b;      *b = tmp; 
  5. }   
  6. int main()  { 
  7.     int a=10,b=20;      int *pa = &a,*pb = &b; 
  8.     cout<<"a = "<<a<<" , b = "<<b<<endl;      cout<<"*pa = "<<*pa<<" , *pb = "<<*pb<<endl;