交换两个数的值
2017-03-14 11:30
162 查看
一、指针
二、异或
int a = 10,b = 20; int *pa = &a; int *pb = &b; NSLog(@"a的地址 = %p, b的地址 = %p",pa,pb); NSLog(@"交换前:pa指向的值 = %d, pb指向的值 = %d",*pa,*pb); if (pa < pb) { pa = (int *)(pb - pa); pb = (int *)(pb - ((int)pa & 0x0000ffff)); pa = (int *)(pb + ((int)pa & 0x0000ffff)); }else { pb = (int *)(pa - pb); pa = (int *)(pa - ((int)pb & 0x0000ffff)); pb = (int *)(pa + ((int)pb & 0x0000ffff)); } NSLog(@"a的地址 = %p, b的地址 = %p",pa,pb); NSLog(@"交换后:pa指向的值 = %d, pb指向的值 = %d",*pa,*pb);
二、异或
a ^= b; b ^= a; a ^= b;
相关文章推荐
- 现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换多少次?例如,1,2,3,5,4,我们只需要交换一次,即将5和4交换即可。
- [Java基础]一个语句交换两个数的值
- 在不借助第三方变量下实现两个数交换
- 经典例题:交换两个数
- 【刷题之路】不使用额外空间交换两个数
- C语言 使用函数实现两个数的交换
- 交换两个数不使用临时变量的陷阱
- 比较两个数的大小,交换两个数的 方法总结
- 将两个数交换--引用
- 交换两个数的值多种解法
- 不使用其他变量交换两个数
- C语言中如何用指针交换两个数的大小
- 两个数的交换
- java 两个数交换问题
- 不用临时变量直接交换两个数的值
- 不允许创建临时变量,交换两个数的内容。
- C语言-使用函数实现两个数的交换
- 关于C语言交换两个数的实现方法以及个人心得
- C语言中交换两个数的方法
- 不允许创建临时变量,交换两个数的内容