标题:请大神帮忙解释一下下面代码可以将 A 和 B 的值交换的原因?本人小白,实在 ...
只看楼主
陈安元
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2014-6-28
结帖率:100%
已结贴  问题点数:10 回复次数:13 
请大神帮忙解释一下下面代码可以将 A 和 B 的值交换的原因?本人小白,实在想不出来

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
a=b-a;
b=b-a;
a=b+a;
printf("%d %d",a,b);


    system("pause");
    return 0;
搜索更多相关主题的帖子: include system return 
2014-06-29 16:36
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
得分:2 
把值带进去运算

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-06-29 17:29
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:2 
a = 5;
b = 3;
a = b - a; // a = -2, b = 3
b = b - a; // b = 5, a = -2
a = b + a; // a = 3, b = 5

2014-06-29 17:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
当然了 这种技巧在实际编程中几乎无用
2014-06-29 17:34
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
得分:0 
a=b-a;
b=b-(b-a);
a=(b-(b-a))+(b-a);


学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-06-29 19:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:2 
学程序对这种东西感兴趣……

授人以渔,不授人以鱼。
2014-06-29 21:32
陈安元
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2014-6-28
得分:0 
回复 6 楼 TonyDeng
在学基础呢,虽然无用,但是有这个事情存在还是要知道的!!!!

自学无门!论坛求神
2014-06-30 09:01
陈安元
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2014-6-28
得分:0 
回复 2 楼 funyh250
OK!谢谢

自学无门!论坛求神
2014-06-30 09:03
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
作为交换 还是使用临时变量的好

DO IT YOURSELF !
2014-06-30 09:03
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:2 
这个知道就行,别用

数组中,用这个交换就错了。


[fly]存在即是合理[/fly]
2014-06-30 09:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433472-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.204523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved