• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

几种交换两个数函数(swap函数)的写法和解析

#include <iostream>
using namespace std;

/*值传递,局部变量a和b的值确实在调用swap0时变化了,当结束时,他们绳命周期结束*/
void swap0(int a, int b)
{
	int tem = a;
	a = b;
	b = a;
}

/*没有初始化指针就开始用,该函数是有问题的*/
void swap1(int *a, int *b)
{
	int *tem;					/*注意tem没有分配内存*/

	*tem = *a;
	*a = *b;
	*b = *tem;
}

/*函数内只是指针的变化,指针的值没有变化*/
void swap2(int *a, int *b)
{
	int *tem;

	tem = a;
	a = b;
	b = tem;

}

/*指针传递实现两个数的交换*/
void swap3(int *a, int *b)
{
	int tem;

	tem = *a;
	*a = *b;
	*b = tem;
}

/*指针传递实现两个数的交换*/
void swap4(int &a, int &b)
{
	int tem;
	
	tem = a;
	a = b;
	b = tem;
}

int main()
{
	int num1 = 1;
	int num2 = 2;
	
	//swap0(num1, num2);
	
	//swap1(&num1, &num2);

	//swap2(&num1, &num2);

	//swap3(&num1, &num2);

    swap4(num1, num2);

	cout << num1 << endl << num2 << endl;
	return 0;
}


posted @ 2013-08-20 20:34  Class Xman  阅读(1317)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3