C++交换两个数的值
2015-05-19 11:12
316 查看
C++交换两个数的值
需要临时变量(1).使用引用(引用即别名)
void swap1(int &a, int &b) { int k; k = a; a = b; b = k; }
函数时的格式:swap1(x,y)
(2). 指针
void swap2(int *a, int *b) { int k ; k = *a; *a = *b; *b = k; }
调用该函数时的格式:swap2(&x,&y)
2.不需要临时变量
(1).假如 a = 3,b = 4。想将a和b的值互换,可以用一下赋值语句实现:
有一个陷阱: int swap(int * a,int * b){ if(a==b)//需要加入判断a指针与b指针相同的情况(细节) return -1; a = a ^ b; b = b ^ a; a = a ^ b; return 0; }
下面用竖式进行简单说明:(10进制化为二进制)
a = 011
(^) b = 100
则 a = 111(a ^ b的结果赋值给a,a已变成了7)
(^) b = 100
则 b = 011(b^a的结果赋给b,b已经变成了3)
(^) a = 111
则 a = 100(a^b的结果赋给a,a已经变成了4)
(2).
a = a + b; b = a - b; a = a - b;
总结:位运算比加减快,当然任何互逆的运算都是可以的。
相关文章推荐
- C++中几种不同交换两个数的方法
- C++与java——浅谈两个数的交换问题
- 【c++程序】通过指针来交换两个数的值
- 【c++程序】通过别名来交换两个数的值
- [C/C++] 怎样不用中间变量temp 实现两个数交换
- C++[算法]不借助第三个参数,交换两个数的值
- C++中通过指针来交换两个数
- [转][C/C++] 怎样不用中间变量temp 实现两个数交换
- Qt_C++交换两个数
- C++ 引用 (交换两个数的值)
- C++使用异或运算实现交换两个数的值
- 【C++】怎样不用中间变量temp 实现两个数交换
- 【C++】怎样不用中间变量temp 实现两个数交换
- C++交换两个数的值,不需要中间变量
- C++ 引用类型作为函数的形参 (不用第三个数交换两个数)
- C/C++/Java不使用临时变量实现两个数的交换
- C++交换两个数总结
- C++中交换两个数/二叉树的建立
- c c++ 交换两个数的值
- C++中实现的交换两个数的值