首页 > 代码库 > 使用异或实现两个数的交换
使用异或实现两个数的交换
实例:将数组的头尾两端依次对调(采用异或的方法实现两数的交换,不需要临时变量)
#include <iostream> #define N 10 void swap(int *a, int *b) //交换a,b { *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; } void reverse_arry(int a[], int arry_len) //将数组的头尾两端互换 { int i = 0, j = arry_len-1; while(i < j) { swap(&a[i], &a[j]); ++i; --j; } } int main() { int a[N]; for(int i = 0; i < N; ++i) { a[i] = i; } std::cout << "before: "; for(int i = 0; i < N; ++i) { std::cout << a[i] << " "; } std::cout << std::endl; reverse_arry(a, N); std::cout << "after reverse_arrt: "; for(int i = 0; i < N; ++i) { std::cout << a[i] << " "; } std::cout << std::endl; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。