金山(Kingsoft)笔试面试题整理之002
2012-03-01 21:49
218 查看
题目2:不使用临时变量,交换两个变量的值。
/*****************************************/ /*交换a与b的值,不使用临时变量 分析: a = a xor b; b = a xor b; a = a xor b; 先看前两句,相当于 b = a xor b xor b equals b = a xor (b xor b) equals b = a xor 0 equals b = a 再看第三句,相当于 a = a xor a xor b equals a = 0 xor b equals a = b */ /*******************************************/ #include <stdio.h> /*不使用临时变量,交换两个变量的值*/ void swap(int *pa, int *pb) { *pa = (*pa) ^ (*pb); *pb = (*pa) ^ (*pb); *pa = (*pa) ^ (*pb); } int main(void) { int a = 5, b = 9; printf("a=%d,b=%d\n", a, b); swap(&a, &b); printf("a=%d,b=%d\n", a, b); return 0; }
相关文章推荐
- 金山(Kingsoft)笔试面试题整理之004
- 金山(Kingsoft)笔试面试题整理之006
- 金山(Kingsoft)笔试面试题整理之007
- 金山(Kingsoft)笔试面试题整理之008
- 金山(Kingsoft)笔试面试题整理之001
- 金山(Kingsoft)笔试面试题整理之003
- Java笔试面试题整理第二波
- 【Killua笔试面试题整理】两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值
- 【IT笔试面试题整理】海盗分宝石
- 【IT笔试面试题整理】字符串转数组+数组转字符串
- Java笔试面试题整理第三波
- 笔试面试题整理,慢慢搜集....
- Java笔试面试题整理第三波
- 2011Android技术面试整理附有详细答案(包括百度、新浪、中科软等多家公司笔试面试题)
- 【IT笔试面试题整理】笔试和面试中常见的智力题
- 【IT笔试面试题整理】判断链表是否存在环路,并找出回路起点
- 笔试面试题整理,慢慢搜集....持续更新
- Java笔试面试题整理第二波
- Java笔试面试题整理
- 笔试和面试题(2)---海量数据面试题整理