C语言实现交换两个数
2009-06-24 22:18
232 查看
C语言中要实现交换两个变量的值可以有很多种方法,下面是我收集的方法:
方法一:使用临时变量
方法二:不使用临时变量
另外一种使用异或操作的
比上面更简单的,可以写成一句话
*a ^= *b^= *a ^= *b;
还有用汇编实现的:
方法一:使用临时变量
void exchange(int *a, int *b) { int temp = 0; temp = *a; *b = *a; *a = temp; }
方法二:不使用临时变量
void exchange(int *a, int *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; }
另外一种使用异或操作的
void exchange(int *a, int *b) { *a ^= *b *b ^= *a *a ^= *b }
比上面更简单的,可以写成一句话
*a ^= *b^= *a ^= *b;
还有用汇编实现的:
int x = 12, y= 19; _asm { push x; push y; pop x; pop y; } printf("x is %d, y is %d /n", x,y);
相关文章推荐
- c语言:多种方法实现两个数的交换
- 【面试题】C语言:使用函数实现两个数的交换
- 如何交换两个数(C语言实现)
- C语言进阶之N种方法实现两个数的交换
- C语言-使用函数实现两个数的交换
- c语言中不需要中间变量就能实现两个数交换的几种算法
- C语言 使用函数实现两个数的交换
- C语言中利用位运算和指针实现的交换两个数的程序
- c语言实现交换两个数的值
- C语言实现 不允许创建临时变量,交换两个数的内容
- 【面试题】C语言:使用函数实现两个数的交换
- 关于C语言交换两个数的实现方法以及个人心得
- 【C语言】实现交换两个数的大小
- 不用临时变量实现两个数的交换
- C语言实现数组中数字收尾交换
- 【C语言】不允许创建临时变量,交换两个数的内容。
- 00003 不用第三片空间实现两个数的交换
- 用异或实现两个数的交换&x&(x-1)表达式作用&计算前1500个丑数
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
- [c语言] 调用函数实现求两个数中的最大值