1)直接改变指针的值达到交换的目的;
#include "stdafx.h"
void swap(int *v1,int *v2)
{
int tmp=*v2;
*v2=*v1;
*v1=tmp;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i=10;
int j=20;
int *p=&i;
int *q=&j;
printf("before swap%d,%d\n",*p,*q);
swap(p,q);
printf("after swap%d,%d\n",*p,*q);
return 0;
}
2)使用指针引用
#include "stdafx.h"
void swap(int *&v1,int *&v2)
{
int tmp=*v2;
*v2=*v1;
*v1=tmp;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i=10;
int j=20;
int *p=&i;
int *q=&j;
printf("before swap%d,%d\n",*p,*q);
swap(p,q);
printf("after swap%d,%d\n",*p,*q);
return 0;
}
3)2级指针
#include "stdafx.h"
void swap(int **v1,int **v2)
{
int *tmp=*v2;
*v2=*v1;
*v1=tmp;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i=10;
int j=20;
int *p=&i;
int *q=&j;
printf("before swap%d,%d\n",*p,*q);
swap(&p,&q);
printf("after swap%d,%d\n",*p,*q);
return 0;
}
本文详细介绍了在C++中通过直接改变指针、使用指针引用和二级指针来实现数据交换的方法,并通过代码示例进行演示。

1519

被折叠的 条评论
为什么被折叠?



