不用临时变量交换两个变量的值,欢迎讨论一下

dev2dev 2004-08-06 08:06:43
看书偶遇一程序,不用临时变量交换两个变量的值,下面是程序片段.
偶认为比较经典,特发帖共享给大家,也欢迎讨论一下:

int a = 5;
int b = 6;

printf("a = %d\n", a);
printf("b = %d\n", b);

a = a^b;
b = a^b;
a = a^b;

printf("a = %d\n", a);
printf("b = %d\n", b);

输出结果为:
a = 5
b = 6
a = 6
b = 5

其中^为XOR(异或),该原理也广泛应用于计算机图形学方面.
...全文
265 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AutoAsm 2004-08-07
  • 打赏
  • 举报
回复
请问不准走路,跑步,不准坐汽车,作轻轨,也不准自行车,摩托车,如何上班

答案是:














爬去
keard 2004-08-07
  • 打赏
  • 举报
回复
a = a^b;
b = a^b;
a = a^b;

b=a+b;
a=b-a;
b=b-a;
各有什么优缺点啊?
ly_liuyang 2004-08-06
  • 打赏
  • 举报
回复
呵呵:)
sysadm_cc 2004-08-06
  • 打赏
  • 举报
回复
指针不行吗
dev2dev 2004-08-06
  • 打赏
  • 举报
回复
还有,可能偶比较笨,嘿嘿
dev2dev 2004-08-06
  • 打赏
  • 举报
回复
就当我灌水吧,不过觉得

大家太浮躁了,真的,

试问如果面试的时候遇到这种问题,

大家确信可以答出来吗?

GoogleGeek 2004-08-06
  • 打赏
  • 举报
回复
b=a+b;
a=b-a;
b=b-a;

楼主,你是纯粹浪费时间啊
zhufeng98 2004-08-06
  • 打赏
  • 举报
回复
有必要吗?
redhatcn 2004-08-06
  • 打赏
  • 举报
回复
a, b = b, a

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧