几个swap函数的实现
1、第一个也是最常见的一个,利用指针进行数据交换
void func_swap(int *a, int *b)
{
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}`
2、利用引用,直接取别名
void func_swap2(int &a, int &b)
{
int temp = 0;
temp = a;
a = b;
b = temp;
}
3、利用二级指针,在函数内部若要定义或者生成一个新的指针,如果希望这个指针在函数体外仍然可以使用的话,在函数的参数则需要声明成二级指针
void func_swap3(int **a, int **b)
{
int *temp;
int **t_temp;
t_temp = &temp;
*t_temp = *a;
*a = *b;
*b = *t_temp;
}
测试函数
void main()
{
int a, b;
a = 10;
b = 20;
int *ta, *tb;
ta = &a;
tb = &b;
func_swap3(&ta, &tb);
printf("a:%d\tb:%d\t\n", *ta, *tb);
system("pause");
}