关于交换整数变量值的问题
2010-10-26 17:06
281 查看
问题:交换整数a和b的方法有几种?
第一种:
该方法缺点是需要申请一个整形变量,但是不会出现其他数据溢出的问题。
第二种:
该方法存在数据溢出的风险。例如a是一个非常大的整数,而b是一个非常小的负数,那么a-b就出现了数据溢出。优点不需要申请多余的变量。
第三种:
第一种:
int swap(int &a, int &b) { int tmp; tmp = a; a = b; b = tmp; return 0; }
该方法缺点是需要申请一个整形变量,但是不会出现其他数据溢出的问题。
第二种:
int swap(int &a, int &b) { a = a - b; b = a + b; a = b - a; return 0; }
该方法存在数据溢出的风险。例如a是一个非常大的整数,而b是一个非常小的负数,那么a-b就出现了数据溢出。优点不需要申请多余的变量。
第三种:
int swap(int &a, int &b) { a = a^b; b = a^b; a = a^b; return 0; }
该方法即客服了数据溢出的问题也避免了申请多余变量。但是存在一个问题是a和b不能是.指向相同变量的引用。否则会导致该变量的值为0。
相关文章推荐
- 浅谈关于两个整数的交换函数的N种实现方式
- 关于两个对象交换的问题(实践的角度)
- 关于php将浮点数转为整数的问题
- 关于两个变量值的互换问题
- 【题目26】关于1-N的整数查找排序问题
- 关于linux交换分区swap的一些问题
- 关于交换两个变量值的三种方法
- 有关Java中两个整数的交换问题
- 关于将一个字符串转换为整数的问题
- A Simple Problem with Integers(关于整数的问题)
- poj 3468 (一个关于整数的问题)
- 关于两个变量值互换问题
- 有关Java中两个整数的交换问题
- 关于Html5中<input type="number" name="points" min="1" max="10" />只能输入整数的问题
- 一、关于交换两个变量的问题
- 关于2个int变量交换的问题
- 关于交换两个整数的三种方法
- 关于Java 调用函数进行两个变量值的交换
- 关于sqlserver和ORACLE之间数据交换的问题
- 关于误差,想到一个 整数规划问题