几个swap函数的实现

几个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");
}

猜你喜欢

转载自blog.csdn.net/weixin_42718004/article/details/84888851